Re: [python] Spracovávanie e-mailov v mboxe (Thunderbird)
Proč prostě nepoužiješ IMAP? Můžeš přes něj označit zprávy jako přečtené (seen) a Thunderbird je uvidí označené jako přečtené taky. Honza pá 20. 9. 2019 v 9:44 odesílatel Jirka Vejrazka napsal: > Jestli to chces delat na klientovi, tak mas myslim jedinou moznost - > interakci s bezicim TB. Ale zda se, ze to neni nic jednoducheho. Existovala > na to knihovna v Pythonu, ktera ale prestala byt podporovana. Jedina > aktualni moznost, jakou jsem nasel, je > https://github.com/mdn/webextensions-examples/tree/master/native-messaging > - a to uz bych to uprimne receno zkusil napsat primo v tom JavaScriptu, > ktery je stejne potreba. > > Kdysi (pred temer 15 lety) jsem psal v Pythonu doplnek pro Outlook, ale > tam je to API preci jen o neco stabilnejsi. V Mozilla svete se to API pro > doplnky (addony) obcas uplne zmeni :( > > Jirka > > On Thu, 19 Sep 2019 at 19:57, ZdPo Ster wrote: > >> Primárne sa snažím napasovať na (fungujúci) process/workflow. Mám takú >> blbú predstavu, že sw sa má prispôsobiť ľuďom a nie naopak ;-) >> Preto som sa pýtal hneď na začiatku, či s tým má niekto skúsenosti. >> Ak sa to s mailboxom nedá, tak idem skúšať to riešiť na servery. >> Len ma provokuje, že TB vie za pár okamihov označiť (aj všetky) e-maily >> ako prečítané/neprečítané a ja cez python nie :- ( >> >> On Thu, 19 Sep 2019 at 12:59, wrote: >> >>> Ahoj, >>> >>> IMAP NEvymazava e-maily zo serveru, toto robi POP3 (a aj tam je to, v >>> modernejsich implementaciach, mozne vypnut). Aj mne pride ako hlupost >>> riesit to sposobom, ako sa o to pokusas, snazis sa ohnut softver >>> sposobom, na ktory nebol navrhnuty. >>> >>> Modifikacia e-mailov v mboxe nie je jednuduchy ukon, kedze tie e-maily >>> su tam ulozene pekne a sebou v jednom velkom subore - ak chces upravit >>> nejaky e-mail v strede toho suboru, vsetky ostatne data sa musia >>> 'posunut'. >>> >>> Pozri pripadne sem: >>> http://kb.mozillazine.org/Edit_large_mbox_files >>> >>> Skus nam pripadne blizsie popisat, co presne chces urobit (preco chces >>> tie e-maily takto oznacovat?). >>> >>> azur >>> >>> >>> >>> >>> Citát ZdPo Ster : >>> >>> > Takto: použiť štandardné knižnice nebol problém (t.j. nájsť e-mail >>> > spĺňajúci kritéria, extrahovať prílohy). Ja sa potrebujem napasovať do >>> > existujúce procesu, kde IMAP neviem použiť (keď používateľ spustí >>> > emailového klienta, tak sa emaily zo serveru stiahnu a vymažú, >>> rozfiltrujú >>> > do lokálnych priečinkov (kt. sú vlastne Thunderbird mailboxy), nad >>> ktorými >>> > by fungoval môj skript). >>> > >>> > Problém je, ako označiť, že e-mail bol prečítaný (t.j. spracovaný) a v >>> > tomto prípade je to asi Thunderbird /Mozilla (resp. e-mail klient) >>> > špecifická záležitosť. Thunderbird podporuje len mailbox. >>> > Čo som hľadal na nete, tak skoro všetko sa točí o tom, ako čítať, resp. >>> > vytvoriť email. Ale ak tomu dobre chápem, tak ja potrebujem e-maily >>> > modifikovať. V mailboxe, kde je 30-70 tisíc e-mailov. Ideálne tak, aby >>> môj >>> > skript nevyžadoval vypnúť e-mailového klienta... >>> > >>> > Zdenko >>> > >>> > On Thu, 19 Sep 2019 at 08:59, Lumír Balhar >>> wrote: >>> > >>> >> Ahoj. >>> >> >>> >> A musí to být řešení šíté na míru Thunderbirdu? Mám par skriptů, >>> které mi >>> >> různým způsobem manipulují s poštou, ale všechny to dělají skrze IMAP >>> přímo >>> >> na serveru a tak je pak výsledek synchronizovaný ze serveru na všechna >>> >> propojená zařízení. >>> >> >>> >> Jinak Python má ve tsandardní knihovně moduly pro práci s emaily v >>> různých >>> >> formátech (Mailbox, Maildir). >>> >> >>> >> Hezký den. >>> >> Lumír >>> >> >>> >> Dne středa 18. září 2019 10:28:16 UTC+2 ZdPo Ster napsal(a): >>> >> > Ahojte, >>> >> > >>> >> > >>> >> > máte nie skúsenosti so spracovávaním e-mailov v mboxe? >>> >> > >>> >> > >>> >> > Môj problém je, ako označiť, že (spracovaný) email bol prečítaný. >>> >> > >>> >> > >>> >> > Kontext: potrebujem skript, ktorý raz denne prebehne emaily (v mbox >>> >> formate / Thunderbird) označené ako neprečítané. Ak e-mail nespĺňa >>> kritériá >>> >> (odosielateľ, príloha), tak ho označí ako prečítaný... (Thunderbird >>> používa >>> >> pre neprečítané emaily status "X-Mozilla-Status: " po prečítaní ho >>> >> zmení na "X-Mozilla-Status: 0001") >>> >> > >>> >> > >>> >> > Zdenko >>> >> ___ >>> >> Python mailing list >>> >> python@py.cz >>> >> http://www.py.cz/mailman/listinfo/python >>> >> >>> >> Visit: http://www.py.cz >>> >> >>> >>> >>> >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
[python] Pozvánka na Olomoucké Pyvo v červnu
Ahoj! Pokud vám nevyšel PyCon CZ, přijďte na report na Olomoucké Pyvo (prý se dozvíme, proč PyCon v Olomouci nebude?!). A taky se můžete dozvědět jak na elektroniku s Pythonem, respektive s MicroPythonem. Už ve středu v Olomouci: https://pyvo.cz/olomouc-pyvo/2019-06/ https://www.facebook.com/events/425035344866767/ Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Olomoucké Pyvo duben
Ahoj, podlední středa je už zítra a s ní Olomoucké Pyvo, kde si povíme něco o knihovně Celery a nasazení Pythonu v měřicí technice. Tak se stavte :-) https://pyvo.cz/olomouc-pyvo/ Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Únorové Pyvo v Olomouci
Ahoj, na webu kvůli technickým potížím program ještě není, ale Olomoucké Pyvo ve středu bude. Martin Čurlej si připravil přednášku na téma Monitoring microservic. A pak budou klasicky improvizované lightning talky a volnější diskuse. Tak se stavte budete-li mít cestu kolem. Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Olomoucké Pyvo - Monitoring microservic s pohádkou
Ahoj, zvu vás na první Olomoucké Pyvo v roce 2019. Bude s přednáškou o monitoringu microservic. A doplněné bude pohádkou s dobrým koncem. A jak už to bývá, zabrousíme do různých dalších témat okolo Pythonu a programování vůbec. Událost je na webu: https://pyvo.cz/olomouc-pyvo/ A na FB: https://www.facebook.com/events/407973533308114/ Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Editor pro děti
Kouknul bych na roboty Edison - https://meetedison.com Dají se programovat přes bloky ala Scratch (EdBlocks), tak i pokročilejší bloky (EdWare) a python-like programování (EdPy). Je to všechno multiplatformní - editory běží v prohlížeči. Roboti se programují přes audio výstup. Honza 2018-04-09 16:46 GMT+02:00 Ondrej Tuma: > Jde mi o interakci s okolním světem. A pythonu podvrhnout rozhraní je > snadné. Stejným kódem pak ovládat malé autíčko nebo mini plotter je můj > cíl. A to nemluvím o micropythonu, který běží na čipu za pár korun ;) > > Kdyby byl nějaký vizualizer ala Scratch pro python (vím že je pro > Arduino Wiring, ale to mě připadá zbytečně nízkoúrovňový), tak by to > bylo super. > > Nicméně Scratch a podobné projekty budu teprve zkoumat hlouběji. > > Ondra > > V Mon, 9 Apr 2018 16:12:27 +0200 > "starenka ." napsáno: > > > Hoj, > > > > Scratch nevyhovuje? > > > > --- > > In Perl you shoot yourself in the foot, but nobody can understand how > > you did it. Six months later, neither can you. | print > > 'aknerats'[::-1] > > > > 2018-04-09 16:07 GMT+02:00 Ondrej Tuma : > > > > > Hoj, > > > > > > chystám se učit děti mimo jiné i programovat. Nechci s nimi dělat > > > nějaké složité úlohy, spíše to bude ovládání nějakých jednoduchých > > > robotů, želví grafika atd. Počítá se s dětmi na druhém > > > stupni. > > > > > > Zajímalo by mě, zda máte tip na nějaký fakt jednoduchý, ideálně > > > multiplatformní editor. Nejlepší by bylo kdyby byl v češtině, ale > > > to už bych asi chtěl moc. Zatím jsem našel Thonny, ten vypadá > > > dostatečně jednoduše. > > > > > > Dík za tipy > > > -- > > > Ondřej Tůma > > > https://ipv6.mcbig.cz https://keybase.io/mcbigtwitter: > > > mcbig_cz > > > > > > ___ > > > Python mailing list > > > python@py.cz > > > http://www.py.cz/mailman/listinfo/python > > > > > > Visit: http://www.py.cz > > > > > > > > > > -- > Ondřej Tůma > https://ipv6.mcbig.cz https://keybase.io/mcbigtwitter: mcbig_cz > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
Myslím si, že doporučovat někomu, kdo chce používat databázi, čisté SQL, aby zjistil jak to uvnitř databáze funguje, je stejné, jako doporučovat někomu, kdo se učí programovat v Pythonu, aby začal s Assemblerem a C, aby zjistil, jak ten počítač funguje. 2017-12-29 9:52 GMT+01:00 zu1234: > > Dne 28.12.2017 v 22:19 Petr Blahos napsal(a): > > >> Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil >> bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na >> drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby >> zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je >> velká ztráta času. >> >> > :-) To je o úhlu pohledu. Aby člověk věděl, co v databázi vůbec lze > efektivně udělat, musí > chápat ten relační způsob myšlení, a obávám se, že ORM jej od toho spíš > může odvést. > Navíc když nebude mít python, bude mít pořád to SQL, které asi bude volat > z jakéhokoliv > jazyka, nebo možná někdy dokonce přímo. A nebude se divit, co je to ten > select, protože > v sqlalchemy ORM se přece píše query... > > Ano, přidám par dalších otázek: > Dejme tomu že začnu 'bez SQL'. Vyvíjím program, mám v něm chyby, které > dělají chyby v databázi. > Od toho tě chrání to ORM (stabilní, testované). Musel bys asi narazit na bug přímo v ORM knihovně, aby ses do takové situace dostal. Oproti tomu se syrovým SQL se do takové situace dostaneš snadno. > Pokud se vyhnu SQL, jak budu schopen zkontrolovat svoje data? > Cest je spousta. Základ jsou testy (ale to i v případě použití SQL). ORM lze obvykle používat v shellu, tak se dá databáze pohodlně prohlížet. A obvykle se hodí mít po ruce nějaké GUI k databázi. > Opravit v datech následky mých chyb nebo chyb uživatele? > ORM ti obvykle nedovolí takové chyby udělat. > Změnit strukturu dat z důvodu změny koncepce? > ORM knihovny mají nástroje pro tvorbu databázových migrací. Obvykle umí migrace pro většinu změn struktury vygenerovat automaticky, což se hodí, protože je to věc, kde se dá nasekat spousta tragických chyb. > Program zastírá realitu která je v databázi. > > A jiná otázka trochu bokem: je správné/vhodné vnutit zákazníkovi > databázovou platformu? > Pokud byste to chtěli prodávat, tak zákazník může mít své preference. > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
Ahoj, Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je velká ztráta času. Záleží na projektu, ale když už náhodou budeš potřebovat něco, s čím si tyhle ORM efektivně neporadí, tak to bude vyjímečná situace. V takových situacích si většinou poradíš tím, že budeš trochu študovat manuály a googlit, a zjistíš, že to často taky jde efektivně i s ORM. A když ne, tak data vytaháš a zpracuješ je v Pythonním kódu. A když dat bude moc, a tohle efektivně taky nepůjde, tak se naučíš pracovat s SQLAlchemy Core nebo nastuduješ trochu toho syrového SQL. Co se týče databáze, MySQL/MariaDB bych se vyhnul obloukem. Není ACID (ačkoliv se tím pyšní), autocommituje změny schématu i během transakcí (cca 10 let stále neopravený a zřejmě neopravitelný bug). Při běžném použití tě to nepotrápí. Ale jakmile se projekt rozjede a začneš dělat migrace schematu a dat, tak tě to dřív nebo později pěkně vyjebe. Stalo se mi to v životě asi třikrát, z toho dvakrát na nových projektech, kdy jsme MySQL dali "ještě jednu šanci" protože PostgreSQL nebyla z nějakého důvodu jednoduše k dispozici. S ORM můžeš opustit MySQL/MariaDB relativně snadno, ale proč s ní vůbec začínat, když je tam (krom jiných neduhů) taková past?! Doporučil bych PostgreSQL. S tou se nedá šlápnout vedle pro jakýkoliv projekt. Má i zajímavé "NoSQL" fičury, jako datové typy JSON a hstore, které stojí za pozornost. SQLite může být taky dobrá volba, ale záleží na projektu. Její super fičura je snadno použitelná databáze v RAMce, což se hodí hlavně pro testy. Honza 2017-12-25 11:41 GMT+01:00 Lubomir Vogl: > Ahoj, > > potreboval bych poradit s SQL. Hraju si s MariaDB a zajimalo by me : > > - jaka je nejlepsi knihovna pro praci s SQL ? Zatim jsem nasel (PyMySQL, > SQLAlchemy, MySqlDb) Chtel bych se naucit neco co bude mozne pouzit i na > slozitejsi projekty > - je ORM vhodne i na jednodussi projekty ? > - pokud budu v SQL chtit pouzivat vice SQL dotazu, je to mozne udelat pres > jedno spojeni (jeden cursor) nebo je nutne mit vice otevrenych spojeni ? > Viz nasledujici priklad - jedno otevrene spojeni > > > sql = "SELECT * FROM portal WHERE typ_id = " + str(typ) > self.cursor.execute(sql) > data = self.cursor.fetchall() > c = self.cursor.rowcount > for row in data: > sql1 = "INSERT INTO values VALUES ('',NOW(),0," + str(row[0]) + ")" > try: > self.cursor.execute(sql1) > except: > self.db.rollback() > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] potvrzení o přečtení, doručení
Co třeba poslat to datovou schránkou? Honza 2017-11-24 16:33 GMT+01:00 Ing. Vladislav Ludík: > Zdravím všechny, > > občas bych potřeboval od adresáta potvzení o přečtení či soručení. > > Používám konstrukci SMTPLIB. > > Poradí někdo, jak to udělat či vyžádat ? > > Díky V.L. > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Pyvo v Olomouci
Ahoj, ve čtvrtek 9.11. se uskuteční první Olomoucké Pyvo. Tak kdo bydlíte v blízkém okolí, zhruba mezi Plzní a Košicemi, tak doražte :-) https://pyvo.cz/olomouc-pyvo/ Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Django a debianí balí?kovací systém
2016-07-14 10:06 GMT+02:00 Pavel Schön: > > Není náhoda, že když jsi hledal nějaký Django projekt zabalený jako > balíček pro Debian, tak jsi nic moc nenašel. > > Jeden jsem našel, bohužel nefunguje. ( > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809746 ) > > > Není náhoda, že když jsi hledal nějaký Django projekt zabalený jako > balíček pro Debian, tak jsi nic moc nenašel. > > Protože kdyby Debian měl přebírat každou "blbost" z PyPi, tak je zahlcen > tisíci neužitečnými balíčky. Ty nejlepší jsou samozřejmě k dispoziti i v > Debianu. Osobně preferuju instalaci z apt, pip beru až jako poslední > možnost. > Je škoda, že mezi těmi nejlepšími není třeba to Django. V Debianu stable je několik let stará verze, a když chce člověk aktuální, nezbývá než alternativní apt repozitáře, s kdo ví jakými bezpečnostními riziky. A další pythonní balíčky jsou na tom podobně, pokud tam vůbec jsou. Při standardní instalaci z PyPI je jistota okamžité dostupnosti aktuálních verzí a bezpečnostních aktualizací. > > Proč bys v prvé řadě chtěl z univerzálního Pythonního projektu dělat > balíček > specifický pro nějakou linuxovou distribuci? > > Třeba protože jej chce doručit do mainline Debian nebo má na lokální síti > apt repository. Nebo prostě jej chce instalovat pomocí dpkg -i, což je > naprosto legitimní způsob. > Proti gustu žádný dišputát :-) > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] [spam][ignore] ad knihovnicka
Tady je to komplet: https://twitter.com/ThePracticalDev/media :-) 2016-05-02 12:29 GMT+02:00 ViNiL: > Ahoj, > > po nedavne hezke diskuzi o javascriptu, webu a vubec mi to neda... :-) > > http://imgur.com/gallery/vqUQ5 > > > V. > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Python na frontendu, Brython
Ono to není zas tak růžové, že by všichni přecházeli z CoffeeScriptu, TypeScriptu, apod. na čístý ES2015 + Babel. Lidi jsou zvyklí, že JS už nikdo nepíše. Je to hrozně old-school a vůbec to není trendy. Seriozní projekty dneska všechny frčí na js2js: https://eleks.github.io/js2js/ Honza 2016-04-23 8:59 GMT+02:00 Honza Javorek: > V JS vznikly transpilery hlavně proto, že jazyk zaostával vývoj své > vlastní komunity. CoffeeScript, TypeScript, Dart, kdovíco, se pak snažily > dohnat chybějíci syntactic sugar a fičury. CS byl asi nejpoužívanější a > třeba v Apiary v něm máme podle mě 80 % codebase, byla to děsná móda a > hlavně se to lidem jako třeba já, Pythoňák, nebo Rubystům, psalo mnohem > snáz. S příchodem specky ECMAScript 6 (přejmenovaného na ES2015, protože > chtějí vydávat specku snad každý rok nebo tak něco) ale komunita hromadně z > transpileru prchá a migruje na tohle, případně na transpiler z ES2015 (tzn. > JavaScriptu budoucnosti) do ES5 (tzn. JavaScriptu přítomnosti), zvaný > Babel. Transpilery budoucnost už postrádají, většinu jejich výhod vyzobal > samotný JS ve svých nových verzích. Sice je pořád plný chlupatých závorek, > z nichž se nám Pythoňákům můžou chlupy ježit, ale díky jiným syntactic > sugar srandám to není až taková super pruda to psát a člověku nepřijde, že > to je úplně matlácký jazyk. Když to není frotnend ale server, tak máš navíc > Node.js kde je aspoň minimální základní knihovna (takže nepotřebuješ > isArray nebo left pad nebo co jsou ty největší skandální npm balíčky teď - > ty lidi používají kvůli browseru, ne kvůli serveru) a už se to dá aspoň > trochu používat. > > Stejně bych raději psal Python, ale jen jsem chtěl napsat, že se to s tím > JS lepší a celkem se to dá, na serveru aspoň teda. A jelikož si připadám > jako JS insider na Py diskusi, chtěl jsem vám osvětlit ty věci kolem > transpilerů (když už se na ně zavedla řeč). > > Čau, > Honza > > > 2016-04-22 19:48 GMT+02:00 Libor Jelínek : > >> Ahoj pánové! >> Já bych taky s dovolením přispěl svým názorem: JS je fakt hrozný a proto >> je pro něj tolik transpilerů asi. Osobně se JS vyhýbám obloukem :-) >> >> V Java světě, odkud pocházím, jsou transpilery do Javy nesmírně populární >> a potvrzuju, že výborně použitelné. Appky jakoby desktopové plné formulářů, >> záložek, tiskových sestav, oken ap. by jen v JS snad ani psát nešli. >> >> Pracoval jsem s hodně velkými složitými appkami napsanými ve >> SmartGWT/Vaadin (vše na GWT) a Eclipse RAP. Četl jsem dost článku jak si >> třeba Dropbox tým chroctá, když přesali svůj web UI do CoffeScriptu, MS >> jakýsi web do TypeScriptu ap. >> >> Úžasný mi přijde v tomhle oboru "štítím se JS" přijde Google Dart. Pro >> GWT existoval Python port Pyjamas, který ale už je asi mrtvý. Na větší >> webový projekt bych určitě transpiler zvážil. (Toto od Javascripterů asi >> schytám...) >> >> Hezký víkend! >> Libor >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Coding style
Ahoj, 'evt.Skip' je metoda nebo třída? Podle názvu (velkého písmena na začátku) to vypadá na třídu, ale podle toho příkladu to vypadá na metodu. 2015-11-26 8:26 GMT+01:00 Petr Blahos: > Ahoj, co považujete za lepší coding style? > > if evt: > evt.Skip() > > nebo > > evt.Skip() if evt else None > > ? > > Dík, > Petr > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Roboti, REST, Flask?
2015-09-11 10:29 GMT+02:00 Marek Nožka: > Ahoj > > Potřeboval bych malou radu. Učím programování(Python) na SŠ. Takže jsem > vymyslel(okoukal), že si budeme hrát na Roboty. Bude to tahová hra. > Jednotliví roboti(studenti) se připojí k serveru a budou mezi sebou > soutěžit > o nejlepší algoritmus, který projde bludištěm podle zadaných pravidel. > > Na serverovou část jsem chtěl použít Flask a vytvořit jednoduché REST API. > Řeším ale jak mám obsloužit více klientů tak, aby na sebe navzájem počkali. > Každý klient by měl říct, kam táhne. Ale odpověď můžu poslat až potom, co > všichni pošlou požadavek. Napadli mě dvě řešení. > > 1) Klient pošle požadavek a čeká na odpověď. Stream odpovědi se ale zastaví >a čeká se až se ozvou další klienti. Tohle nevím jak bych ve Flasku >udělal -- pokud to tedy vůbec jde. Pokoušel jsem se to vygooglit ale na >nic kloudného jsem nepřišel. > Ahoj. Tohle se ti ve Flasku, Djangu, aj. synchronních frameworcích bude dělat špatně. Použiješ-li asynchronní aiohttp, můžeš efektivně obsluhovat všechny requesty z Robotů "paralalně" (můžou paralelně čekat s odpovědí). Složitost implementace s aiohttp je zhruba stejná jako ve Flasku. http://aiohttp.readthedocs.org/en/stable/ Nicméně na tento problém se REST, respektive HTTP, zrovna moc nehodí (leda ty websockety). Vhodnější by bylo použít Pub/Sub. Měly by stačit dva topicy (channely), něco jako: 1. Round - hra na něj dělá publish povelu, že je možné táhnout další kolo - všichni roboti sem dělají subscribe a reagují na povel 2. Move - hra se sem dělá subscribe a reaguje na tahy robotů - roboti sem dělají publish tahů Pro jednoduchost rozchození můžeš použít jako Pub/Sub broker třeba Redis. Má dobrou knihovnu jak pro asynchronní Pyhon aioredis, stejně tak pro klasický synchronní přístup redis-py. https://github.com/aio-libs/aioredis https://github.com/andymccurdy/redis-py Honza 2) Klient pošle požadavek a za nějakou chvilku se zeptá jestli má >server už odpověď. To je zase více složitosti na straně klienta. > > Protože jsem nic podobného zatím nikdy nedělal, budu vděčný za každou > připomínku, poznámku nebo radu. Co za knihovnu/framework byste mi > doporučovali. > > Dky >Marek > > -- > @ @ @ Marek Nožka > '.@ > :*`@ email: marek <@t> tlapicka net > `*' jabber: tlapicka <@t> mitranet cz > :: web: http://tlapicka.net/ > `' > `' Powered by Debian GNU/Linux > `.**' > ¨¨ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Pulnocni rozjimani :-)
Trošku z jiného soudku: $ python3 Python 3.4.3 (default, Mar 23 2015, 04:19:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type help, copyright, credits or license for more information. class Account: ... def deposit(self, amount): ... print('saved:', amount) ... class SecureAccount(Account): ... def safe_deposit(self, amount): ... print('*secure transaction begin*') ... super().deposit(amount) ... print('*secure transaction end*') ... sa = SecureAccount() sa.safe_deposit(100) *secure transaction begin* saved: 100 *secure transaction end* class Thief(Account): ... def deposit(self, amount): ... print('STOLEN:', amount) ... class MyAccount(SecureAccount, Thief): ... pass ... ma = MyAccount() ma.safe_deposit(200) *secure transaction begin* STOLEN: 200 *secure transaction end* Honza 2015-05-11 23:57 GMT+02:00 Matěj Cepl mc...@cepl.eu: On 2015-05-11, 20:53 GMT, Honza Král wrote: Jen pozor, ze tohle je chovani CPythonu, tedy jedne z implementaci a nikoli definice chovani pythonu, nelze tedy na to spolehat a porovnavani integereru by se melo vzdy provadet pres == a nikdy pres is, i kdybychom meli 1000% jistotu, ze to budou jen cisla od 0 do 10. Honza Král Skutečně, neni Python jako Python: $ jython Jython 2.7b4 (default:3672e624962a, Feb 13 2015, 04:59:14) [OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.7.0_79 Type help, copyright, credits or license for more information. a = 256 b = 256 a is b True a = 257 b = 257 a is b True $ Zajímavě, Matěj -- http://www.ceplovi.cz/matej/, Jabber: mceplatceplovi.cz GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC The ratio of literacy to illiteracy is a constant, but nowadays the illiterates can read. -- Alberto Moravia ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Volba web-frameworku (a pár menších dotazů)
Snad bych jen dodal, že Python sám o sobě obsahuje standardní knihovnu kde jsou tuny modulů, které se obvykle taky nevyužívají. A kupodivu nikdo si na nějaký MB navíc nebo zbytečný modul nestěžuje. Honza 2015-03-03 7:34 GMT+01:00 Honza Javorek m...@honzajavorek.cz: jdi_do_prdelní argumenty nikoho nic nenauci a k diskusi neprispejou. Trpelivost treba jo :) A je dobry brat v uvahu, ze tady nejde o to pretlacit toho druhyho a napichnout ho na kul, ale poskytnout novackum dostatek argumentu pro to, aby se rozhodli podle sve hlavy. H 2015-03-03 1:00 GMT+01:00 Jaroslav Vysoký vys...@borka.cz: Aleši, jseš borec! (Honza J. teda taky.) Ve chvíli, kdy mně už by se drali na ret jdi_do_prdelní argumenty, ty takhle hezky odpovíš! J. Dne 2. března 2015 23:32 Ales Zoulek ales.zou...@gmail.com napsal(a): Tak skoro mam takovej pocit, ze mensi (ve smyslu objemu 3rd party kodu) rozhodne nebude i znamenat mensi kod o ktery se staram. Skoro bych rekl, ze toho vlastniho kodu bude vic - vazne tak bude dal jenodussi a lepsi? Nerekl bych... Marne premyslim jak je to s mnozstvim lidi, jejichz cas na opetovne vynalezani a opravovani kola nema cenu nekolika MB na disku s kodem, ktery prosel mnoha tisici hodin vyvoje a testovani. Jiste, muze byt vzdycky zajimave si ze studijnich ucelu zkusit re-implementovat vyresene problemy - od bubble sortu pres wsgi handler. Ale delat tu kvuli predstave, ze se tak doberu lepsiho a jednodussiho kodu, ze se mi vyplati si ty veci psat a udrzovat sam nez pouzit ci vylepsit to, co uz je hotove - to snad ne. A. On Mon, Mar 2, 2015 at 10:14 PM Radek Holý radekholypub...@gmail.com wrote: Tak to nevím. Kdyby chtěl někdo spočítat průměr ze sekvence čísel, asi mu taky nebudeme cpát hned numpy. Tuhle jsem někde viděl, že Qt má funkci, která vrátí cestu k adresáři, kam daná platforma ukládá data aplikací. Kdyby někdo hledal takovou funkci, asi mu taky nebudeme hned radit Qt, pokud zrovna nehodlá psát GUI... Se zkušenostmi z práce můžu říct, že existuje velké množství lidí, kterým záleží na tom, kolik MB ve výsledku aplikace, kterou chtějí nainstalovat, zabere na disku. Vývojáři posedlí kontejnery by také pravděpodobně dokázali obhájit, proč je velikost na disku důležitá. A jak už jsem psal, menší = jednodušší = lepší. -- Radek Dne 2. března 2015 17:38 Honza Javorek m...@honzajavorek.cz napsal(a): Rozdil mezi Pythonem a PHP je v tom, ze kdyz nainstalujes knihovnu a neco z ni nepouzijes, tak se to vetsinou nespousti :) Tzn. kdyz v PHP vezmes Symfony a udelas na nej request, pri kazdem requestu se spousti cele Symfony a vsechny soubory v nem. U Pythonu se pouzije jen to, co se potrebuje - co naimportujes. Tudiz argument Django obsahuje spoustu neceho, co nepotrebuju, je vlastne nesmysl. Resp. ano, obsahuje, ale to ze to nepotrebujes ti v nicem nevadi, akorat si pri `pip install django` pockas o sekundu dele. H 2015-03-02 16:21 GMT+01:00 Matěj Cepl mc...@cepl.eu: On 2015-03-02, 10:07 GMT, Marcus Scalpere wrote: Na Django jsem myslel hned na začátku, ovšem po mnoha úvahách a radách mi to opravdu přijde jako dělo na vrabce. Určitě bych to nějak splácal časem, ale kupu toho, co Django umí nepotřebuji (v podstatě potřebuji jen pár formulářů), možná později, až budu chtít dotvořit něco jako učební pomůcku, pak to možná bude vhodná volba. Ale každopádně ta kniha je dost poučná a mám choutky to aspoň zkusit Nikdo Tě nenutí to celé používat a co se týče instalace tak to není o nic složitější nežli 'sudo yum install python-django' (nebo apt-get varianta). Nejmenší projekt s djangem je pár řádek a ještě generovaných skriptem. Možná, že až napíšeš několik website rozměrů nasa.gov budeš chtít něco jiného ale do té doby fakt nevidím důvod proč si psát framework sám. Hezký den, Matěj ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Volba web-frameworku (a pár menších dotazů)
2015-02-18 21:58 GMT+01:00 Pavel S pa...@schon.cz: Ahoj. Vykaslal bych se na vsechny frameworky, prestoze jiste maji sve kvality (django, flask apod.). Pokud jsi zvidavy clovek a chces se neco naucit, jak funguje HTTP, napis si framework vlastni. Pro zacatek nepotrebujes zadny webserver. Zacal bych u modulu wsgiref, vezmi hello world aplikaci ( https://docs.python.org/2/library/wsgiref.html#examples ), napis abstrakci nad request a response, potom nejaky URL router. Pozdeji az budes potrebovat formulare, udelas si abstrakci na formulare. Do ceho bych se radeji nepoustel je vlastni sablonovy system. Tam bych vzal osvedcene jinja2. Pokud bude treba databaze, doporucuji SQLAlchemy. Az si timhle projdes, nabidky se jiste objevi (to je ta monetarizace know-how). Hodne stesti! Až si tím projde, tak se nabídky neobjeví. Nikdo nechce platit lidi, kteří rádi vymýšlejí kolo a řeší věci, co dávno vyřešil někdo jiný. Python je jazyk s batteries included. Obvykle se stačí poohlédnout po hotových knihovnách a ty využít. A ve většině případů jsou ty hotové knihovny mnohem lepší, než kdyby si je člověk psal sám (protože jsou výsledkem spolupráce a zkušeností více lidí). A když bych se měl vyjádřit k tématu, tak v zásadě souhlasím s těmi kdo doporučují Django. Má výbornou dokumentaci, spoustu návodů, a spoustu hotových komponent, který spolu dobře fungují (ORM, templaty, formuláře, cache, ...), a stačí je prostě použít když je potřeba. Ale co vidím jako podstatnější je to, že Django člověka vede k tomu, jak si uspořádat kód do nezávislých komponent (modely, views, templaty, management commandy, ...). Jak vytvářet malé nezávislé aplikace použitelné ve více projektech. Atp. Myslím si, že pro zkušeného borce není problém poskládat si vlastní framework na nějakém mikroframeworku jako Flask. A zkušený borec určitě dokáže psát kód tak, aby z toho nebyl špagetový moloch. Nicméně nejsou všechny ty Flaskové weby ve výsledku jako Django v bledě modrém, jen s více úsilím? V čem jsou tak zásadně odlišné, že stojí za tu námahu? Jen pocit poskládal jsem si to sám, nebo Flask je trendy! nestačí. Ale nepochopte mě špatně, nemám nic proti Flasku. Je parádní nástroj na malé webíky, proxy, atp. Nicméně jakmile člověk potřebuje postavit velký web a potřebuje přidat ORM, formuláře, templaty, atd., je lepší zvolit framework, který tyhle komponenty obsahuje v základu. Jak se říká: Na velké projekty Django. A na malé projekty taky Django, protože i malý projekt se může časem rozrůst. Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Seznamy
Já bych snad jen dodal, že obrovská síla Pythonu je v tom, že je multiparadigmatický, a umožňuje volit objektový, funkcionánlní, či procedurální přístup pro řešení konkrétních problémů. A myslím si že dobrého programátora nedělá to, že dokáže všechno naprogramovat v jednom oblíbeném paradigmatu, ale že dokáže volit to nejelegantnější řešení pro daný problém. Není problém pokud nevím, jak něco vyřešit. Problém je, když znám jen jedno řešení. Honza 2015-02-11 10:08 GMT+01:00 Vladimir Macek ma...@sandbox.cz: On 10.2.2015 20:50, Honza Král wrote: 2015-02-10 20:36 GMT+01:00 Radek Holý radekholypub...@gmail.com: V Pythonu dělám skoro 9 let a pořád platí, že kdykoliv někde narazím na reduce, map apod. tak mě to vždy zdrží a chvíli mi trvá, než pochopím o co jde. List comprehensions se mi čtou snadněji - přirozeněji. Nehledě na to, že ty funkcionální záležitosti jsou skoro vždy spojené s deklarací jinak zbytečných funkcí se složitým významem, nebo ještě komplikovanějšími lambda funkcemi. Každopádně je to prostě otázku vkusu/zvyku... Jedním z problémů může pro mě být ta prefixová notace. Vypadá to jako Lisp :-) Doufám, že se shodneme, že to je věc osobních preferencí a nebudeme si to navzájem vyčítat. :-) Zajisté můžu považovat za elegantnější vytáhnout filtrační nebo transformační logiku do extra funkce s komentáři a pak jí předhodit do filter/map než to patlat do třířádkového C-G. Podotýkám pro jistotu znovu, že používám jak filter/map + zřídka reduce, tak C-G, vždy podle svého citu pro vhodnost. Snažím se dodržovat Zen. Kdykoli píšu \, trošku uvnitř umřu. Vidim to uplne stejne, proto jsem byl prekvapen kdyz tady slysim zastance filter/map/... Ja osobne se k nim skutecne uchyluji jen obcas kvuli vykonu a v situaci kdy je naprosto jasne, co to bude delat. To poslední negrokuju. :-) Jasné je snad v Pythonu vše, proto ho máme rádi, ne? :-) Ještě mě zarazilo to stáhneme 10 URL. S tím mám vždy osobní problém. Jakmile někdo volá map, aniž by ho zajímala návratová hodnota volané funkce, považuji to za chybu. Nehledě na to, že v Pythonu 3 map vrací iterátor, takže se kvůli tomu ještě typicky map obaluje do list... V těchto případech vždy preferuji klasický for cyklus. Ale opět je to jen můj názor. Dovoluji si i zde spíše nesouhlasit, zejména se slovem typicky. Přetypování tohoto typu snad používáme až tehdy, kdy je to nutné, ne? Pokud někde dostanu iterátor, je hromada případů, kdy se elegantně a efektivně použije přímo. Naprosty souhlas, parkrat jsem videl volani map ci list comprehension bez zajmu o vysledek a take s tim mam problem - je to plytvani (zbytecne se alokuje list) a je to hure citelne. Nedochází mi, kde jste vzali, že spojuju příklad se stažením 10 URL s map(), psal jsem zrovna, že jsem na tom příkladu ilustroval C-G. Ale i na map() se to dá použít map(urllib.urlopen, ('http://www.seznam.cz', 'http://google.com', 'http://ibm.com')) Též nerozumím tomu, jak jste vyvodili, že se jak v tomto případu, tak v tom mnou prve zmíněném s C-G nezajímám o návratovou hodnotu. Jednak jsem to zmiňoval jako rychlou ukázku C-G jakožto konstruktu pro studenty (kde se navc netvoří profesionální kód), za druhé mohu dostat všechny potřebné informace vč. stavových a za třetí... kam se vám poděl EAFP (https://docs.python.org/2/glossary.html)? Mimochodem v python3 uz reduce ani neni builtin (byl presunuty do functools) a i Guido to vidi obdobne: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 S tím souhlasím, nic proti. Sám jsem psal, že ji používám zřídka. Děkuji za diskusi, štvete mě jen malinko. :-) Vl. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Lock
Jestli potřebuješ aplikaci, která je nezávislá na druhu databáze, použij SQLAlchemy, která ti poskytne abstrakci nad různými databázovými backendy. Jinak na myisam i innodb je špatné to, že nejsou ACID a dříve nebo později tě někde pořádně vypečou. Jak už psal Honza Král, 99% problémů s databází je MySQL. Jestli neděláš jen nějaký hobby projektík pro sebe, použij raději PostgreSQL. Honza 2015-02-09 17:36 GMT+01:00 mtip m...@atlas.cz: Já tedy nevím, co je třeba na myisam špatného pro práci s penězi. 1. Potřebuju aplikaci, která je více nezávislá na druhu databáze. 2. Transakce pro write to neřeší, jedině read a tu vzhledem k možné době trvání zámku nechci použít Nicméně už sem to vyřešil jednoduše viz tip Honzy: A samozrejme, jako vzdy, je lepsi varianta bezzamkova: UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0 Mirek 9. února 2015, 17:10:21, napsal jste: Transakce jsem použít nechtěl, protože databáze nemusí být innodb dokonce ani mysql. Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí jen náhodné mazání uložených dat. PM ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Lock
2015-02-09 18:50 GMT+01:00 Petr Messner petr.mess...@gmail.com: V čem není InnoDB ACID, při nastavení patřičného isolation levelu? InnoDB má solidní bug v transakcích, kvůli kterému nesplňuje ACID. Neumí udělat rollback ALTERu, takže ALTER se autocommituje vždy, i když zbytek transakce se normálně rollbackuje. Dříve či později na to narazí každý, kdo dělá migrace databáze. V horším případě to skončí ztrátou dat a rozbitím databáze (osobní zkušenost). Bug je již témeř 8 let nahlášen a nikdo ho evidentně neřeší: http://bugs.mysql.com/bug.php?id=28727 Honza PM Dne pondělí 9. února 2015 Jan Bednařík jan.bedna...@gmail.com napsal(a): Jestli potřebuješ aplikaci, která je nezávislá na druhu databáze, použij SQLAlchemy, která ti poskytne abstrakci nad různými databázovými backendy. Jinak na myisam i innodb je špatné to, že nejsou ACID a dříve nebo později tě někde pořádně vypečou. Jak už psal Honza Král, 99% problémů s databází je MySQL. Jestli neděláš jen nějaký hobby projektík pro sebe, použij raději PostgreSQL. Honza 2015-02-09 17:36 GMT+01:00 mtip m...@atlas.cz: Já tedy nevím, co je třeba na myisam špatného pro práci s penězi. 1. Potřebuju aplikaci, která je více nezávislá na druhu databáze. 2. Transakce pro write to neřeší, jedině read a tu vzhledem k možné době trvání zámku nechci použít Nicméně už sem to vyřešil jednoduše viz tip Honzy: A samozrejme, jako vzdy, je lepsi varianta bezzamkova: UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0 Mirek 9. února 2015, 17:10:21, napsal jste: Transakce jsem použít nechtěl, protože databáze nemusí být innodb dokonce ani mysql. Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí jen náhodné mazání uložených dat. PM ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Seznamy
2015-02-09 16:35 GMT+01:00 Honza Král honza.k...@gmail.com: ne, o tom jsem nemluvil, predpokladam python 3 :) Materializuje se kvuli predani do intersection - viz operator '*' To se dá vyřešit třeba nahrazením: ... set.intersection(*map( ... za: ... reduce(set.intersection, map( ... a je to čistě funkcionální (bez ohledu na to jestli je to Pythonic). Mě se líbí explicitní použití funkcí map() a filter(), protože je to pro začátečníka čitelnější a pochopitelnější, než List Comprehension Tohle me zajima - ja mam presne opacnou zkusenost. Bavime se o zacatecnicich v programovani (s temi mam zkusenost ja), ci jen zacatecniky s pythonem, ale programatory? Myslím si, že pro člověka, který vidí poprvé map a filter a List Comprehension, je snažší najít si v dokumentaci co dělají funkce map a filter a pochopit je samostatně. Protože to jsou dvě oddělené věci. Zatímco když se použije List Comprehension kombinující map i filter v jednom zápise, tak je tam toho na rozluštění a pochopení více. A taky ten List Comprehension nejde snadno dohledat v dokumentaci, protože z kódu není poznat, jak se to jmenuje (neobsahuje klíčová slova jako map či filter). Nějakou zásadnější osobní zkušenost s výukou nemám. Ale minimálně na škole jsem se setkal s tím, že se úplní začátečníci učí nejdříve funkcionální paradigma, tak by ten map a filter mělo být snadné pochopit pro kohokoliv. Nicméně naučit se místo toho v Pythonu rovnou List Comprehension určitě není na škodu. Honza Honza Král E-Mail: honza.k...@gmail.com Phone: +420 606 678585 2015-02-09 16:34 GMT+01:00 Pavel S pa...@schon.cz: Jeste pokud bychom se chteli zbavit 'materializace seznamu uprostred', lze in-place pouzit itertools.ifilter a itertools.imap. Dne pondělí 9. února 2015 16:17:52 UTC+1 Pavel S napsal(a): Na pythonu je krasne, ze jedna a tataz vec lze udelat mnoha zpusoby a ja nabidnul jeden z nich: * nemeni vnitrni stav oproti reseni s pop() * nepouziva operator na setu, cimz me nenuti zjistovat, co tento operator vlastne dela. (intersection je jasne...) * nepouziva list comprehension * je rozepsane do vice radku, primocare a jasne citelne ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Lock
Jo, MariaDB je na tom stejně, viz.: https://mariadb.com/kb/en/mariadb/sql-statements-that-cause-an-implicit-commit/ 2015-02-09 22:03 GMT+01:00 zu1234 zu1...@seznam.cz: MariaDB je to stejně špatně? Dne 9.2.2015 v 21:13 Jan Bednařík napsal(a): 2015-02-09 18:50 GMT+01:00 Petr Messner petr.mess...@gmail.com: V čem není InnoDB ACID, při nastavení patřičného isolation levelu? InnoDB má solidní bug v transakcích, kvůli kterému nesplňuje ACID. Neumí udělat rollback ALTERu, takže ALTER se autocommituje vždy, i když zbytek transakce se normálně rollbackuje. Dříve či později na to narazí každý, kdo dělá migrace databáze. V horším případě to skončí ztrátou dat a rozbitím databáze (osobní zkušenost). Bug je již témeř 8 let nahlášen a nikdo ho evidentně neřeší: http://bugs.mysql.com/bug.php?id=28727 Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] EuroPython
Ahoj, jedete někdo na EuroPython a/nebo PyData do Berlína? Mohli bychom se tam potkat a prohodit pár slov v češtině či slovenčině. Honza ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Python problém - elegantnější zápis
Ahoj, můžeš tam použít Generator Expression: for objekt in (obj in list_objektu if obj.name == name): pass Honza 2013/11/20 bertiks...@gmail.com: mám list objektu, a potřebuji zkontrolovat jestli se jeden určitý parametr objektu rovná proměnné, a chtěl bych se zeptat, jestli to jde udělat elegantněji než takhle? Jde nějak spojit první dva řádky? Jsem pořád docela začátečník v Pythonu, takže se předem omlouvám, pokud je to velmi jednoduché, nebo to nejde zjednodušit. for objekt in list_objektu: if nazev==objekt.name: # něco to dále dělá ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Python problém - elegantnější zápis
Mám tam chybu :-) for objekt in (obj for obj in list_objektu if obj.name == name): pass 2013/11/20 Jan Bednařík jan.bedna...@gmail.com: Ahoj, můžeš tam použít Generator Expression: for objekt in (obj in list_objektu if obj.name == name): pass Honza 2013/11/20 bertiks...@gmail.com: mám list objektu, a potřebuji zkontrolovat jestli se jeden určitý parametr objektu rovná proměnné, a chtěl bych se zeptat, jestli to jde udělat elegantněji než takhle? Jde nějak spojit první dva řádky? Jsem pořád docela začátečník v Pythonu, takže se předem omlouvám, pokud je to velmi jednoduché, nebo to nejde zjednodušit. for objekt in list_objektu: if nazev==objekt.name: # něco to dále dělá ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] How To again
Ahoj Jardo, widget má specifický význam, rozhodně není pravda, že nic neznamená. Záleží na kontextu v jakém je použit. Pokud myslíme widgetem komponentu v GUI, což je tvůj případ, překládá se jako ovládací prvek. Honza 2013/8/20 Tovim jaak...@gmail.com Ahoj Pavle a Petře. Pavlovy wjeci: ... zvýraznění, že se jedná o Python 3 V How to Think je to v názvu, v textu o Tkinteru to doplním ... překlep a chybějící mezera - doplním ... odkaz na originál V zápatí je odkaz na autora a jeho stránku, autor souhlasí; originál je plný balastních textů ... odkazy na hlavní stranu Na každé stránce je odkaz na všechny ostatní, tedy i na tu úvodní. Vypustím asi odkazy na stránky aktuálně otevřené. Petrovy wjeci: Ten widget jeden! Nebo vidžet? S widgetem či vidžetem, oboje má svoji mouchu. Piškot mi přijde zábavný. V textu používám piškot i widget, takže nevím. Ápropo: specifické na původním termínu je to, že nic neznamená. Podobnou specifikou převodu může být v duchu Létajícího cirkusu to, že je mírně střelený. Děkuji za připomínky. Jarda -Original Message- From: Python [mailto:python-boun...@py.cz] On Behalf Of g...@post.cz Sent: Tuesday, August 20, 2013 9:19 AM To: Konference PyCZ Subject: Re: [python] How To again Na první straně: * Já bych nějak zvýraznil, že se jedná o Python 3. * oprava překlepu skriptovacíPjazyk Tcl... * oprava from tkinter import* --- from tkinter import * * dal odkaz na originál Na ostatních stranách bych udělal odkaz na hlavní stranu třeba přes logo nebo nadpis Tutoriál. Pavel Petr Přikryl napsal(a), dne 20.8.2013 8:54: Ahoj, Navrhuji korekci překladu pojmu widget v http://tkinter.py.cz. Nejjednodušší by bylo ponechat widget a důkladně to ze všech stran vysvětlit. Asi se nepodaří vymyslet něco českého, co by bylo podobně specifické a obecně přijatelné. Petr __ Od: Tovim jaak...@gmail.com Komu: 'Konference PyCZ' python@py.cz Datum: 18.08.2013 17:08 Předmět: [python] How To again Buďte zdrávi pánové a dámy. Právě jsem zavěsil doplněný překlad How To Think Like a Computer Scientist in Python (3) na http://howto.py.cz o překlad textů k Tkinteru (http://tkinter.py.cz) a dovoluji si vás na to upozornit. Rád bych znal vaše názory. Tovim -- ___ 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 ___ 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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
2013/4/16 Jaroslav Lukesh luk...@seznam.cz Ahoj a díky za rozšíření obzorů. Jsou to data ne zrovna jednoduše vycucaná z databáze, o nějaké dočasné tabulcev sqlu jsem uvažoval protože je nad tímto selektivně sečteným výsledkem víc operací, ale připadalo mi to jako ne příliš čisté řešení. Otrocky s pomocnýma proměnnýma to taky jde, ale chtěl jsem vědět, jeslti na to není nějaký fígl, protože mi připadalo logické, aby pro práci nad poli a slovníky bylo aspoň trochu něco jako je v sql. Je na to spousta nástrojů, třeba ty itertools. Chce to jen méně zkoušet metodou pokus omyl a více koukat do nápovědy :-) Ale mám s tím trošku problém, izoloval jsem problém pro tento příklad až příliš moc, protože se mi nedaří jej rozšířit o 'c', tedy pro tento vstup (podotýkám jen, že hodnota 'c' je stejná pro všechny 'a'): [{'a':4,'b':3,'c':9},{'a':4,'**b':5,'c':9},{'a':1,'b':3,'c':** 7},{'a':3,'b':2,'c':6}] chtěl tento výstup: [{'a': 4, 'b': 8, 'c':9}, {'a': 1, 'b': 3, 'c':7}, {'a': 3, 'b': 2, 'c':6}] Jde to třeba takto (upravené řešení od Honzy Javorka): from itertools import groupby from operator import itemgetter def summarize(data): return [{'a': a, 'b': sum(map(itemgetter('b'), group)), 'c': c} for (a, c), group in groupby(data, itemgetter('a', 'c'))] A kdybys to chtěl pomocí cyklů, tak třeba takto: from itertools import groupby from operator import itemgetter def summarize(data): groups = groupby(data, itemgetter('a', 'c')) out = [] for (a, c), group in groups: b = sum(map(itemgetter('b'), group)) out.append({'a': a, 'b': b, 'c': c}) return out Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
Myslím že to využití groupby je parádní. Je to snadno čitelné, jednoduché a elegantní řešení. Těžko to půjde napsat čitelnějí pomocí cyklů. Ostatně právě kvůli tomuto příkladu existuje funkce groupby. Jen bych to lehce vylepšil použitím operator.itemgetter místo těch lambda funkcí, tzn.: from operator import itemgetter get_a = itemgetter('a') get_b = itemgetter('b') 2013/4/15 Honza Javorek jan.javo...@gmail.com Jde to samozřejmě v podstatě one-linerem, ale bude to nečitelný. from itertools import groupby def summarize(data): get_b = lambda x: x['b'] get_a = lambda x: x['a'] return ( {'a': val, 'b': sum(map(get_b, group))} for (val, group) in groupby(data, key=get_a) ) data = [{'a': 4, 'b': 3}, {'a': 4, 'b': 5}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] print list(summarize(data)) # [{'a': 4, 'b': 8}, {'a': 1, 'b': 3}, {'a': 3, 'b': 2}] Já bych to udělal normálně cyklama, ať se v tom jde vyznat. H 2013/4/15 starenka . staren...@gmail.com Ahoj, dal sem si malyho panaka, abych to pochopil, ale porad nechapu, pokud by ti nahodou slo o sumu cisel u klicu, tak collections.Counter: import collections c = collections.Counter() for one in [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}]: ... c.update(one) ... c Counter({'b': 13, 'a': 12}) Ale asi chces neco jinyho, v tom pripade mi to asi lip vysvetli, protoze jsem z pomalejsich s --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2013/4/15 Jaroslav Lukesh luk...@seznam.cz: Dobrý den, existuje na toto nějaký jednoduchý fígl? mám zdroj (první dva slovníky jsou za sebou abyste je nemuseli hledat, jinak jsou rozmístěná všeljak) [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] a chci ve výsledku sesumírovat všecky b podle stejného klíče a, takto: [{'a':4,'b':8},{'a':1,'b':3},{'a':3,'b':2}] hodnota klíče a je obecná, tedy je to text, ne číslo. Děkuji, JL. ___ 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 ___ 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] otázka ohladom mojho štýlu písania v OOP
Ahoj, v prvé řadě bych doporučil nastudovat si PEP-8, což je doporučení (de-facto standard) jak psát kód v Pythonu. http://www.python.org/dev/peps/pep-0008/ Honza 2013/1/12 Roman Beno romanbeno...@gmail.com http://programujte.com/anonymni-profil/170094/ Dobrý deň, chcel by som sa spýtať na váš názor ohľadne môjho štýlu písania programov v OOP. Rád prijmem akukolvek kritiku, mojim cielom je sa v tomto ohľade zlepšit a v tejto oblasti som si nie som príliš istý. Tu sú ukážky mojich kódov: # -*- coding: utf-8 -*- #Definícia triedy### class Fibonacci: Fibonacciho trieda def __init__(self,a=0,b=1,pocet_cisiel=10,default=0): Vyrobíme stavebný materiál pre fibonaccciho postupnosť. self.a=a self.b=b self.pocet_cisiel=pocet_cisiel self.default=default def proces(self): print(self.a,self.b,end= ) while True: self.a=(self.a+self.b) self.default+=1 if self.default=self.pocet_cisiel: print(\n) break print(self.a,end= ) # postupnost bude a,b,a,b,a,b... tento blok je pre všetky a self.b=(self.a+self.b) self.default+=1 if self.default=self.pocet_cisiel: print(\n) break print(self.b,end= ) # a tento pre všetky b #Hlavný program## MojaInstancia=Fibonacci(pocet_cisiel=20) MojaInstancia.proces() Tu je další: # -*- coding: utf-8 -*- # program Záznamník adries # tréning Tkinter + OOP # autor JA, dnes # ver. 1.0 # * opravená chyba pri vytvárani poľa pre zadávaní adresy, použitá neexistujúca farba okna # * opravená chyba pri vytváraní tlačítka ukončujúceho okno zadávania, použitý neexistujúci názov prvku # * zmenené umiestnenie a veľkosť tlačítka pre zavretie okna pri pridávaní adries # ver. 1.1 # * opravená chyba pri potvrdení voľby mena pri pridávaní mena, použitá neexistujúca premenná # * opravená chyba pri potvrdení voľby mena pri pridávaní adresy, použitá neexistujúca premenná # ver. 1.2 # * polia pre zadávaní mena aj adresy sa po zadaní oboch údajov teraz vymažú (ich hodnota)m # uživatel ich teraz nemusí zadávať sám # * opravená chyba pri načítaní údajov zo zoznamu, použitá neexistujúca premenná # ver. 1.2.1 # * opravená chyba pri zobrazovaní načítaných údajov,použitá neexistujúca premenná # ver. 1.3 # * opravená chyba pri vytváraní tlačítka na zavretie okna načítania údajov, použitá neexistujúca # premenná # * opravená chyba pri zobrazovaní načítaných údajov (druhá chyba v tomto), použitá neexistujúca premenná # * zmenený text niektorých tlačítok v úvodnom menu # * v popisku okna sa teraz zobrazuje aj aktuálna verzia programu # ver. 1.3.1 # * pri načítaní údajov upravená oddelovacia čiara údajov # * zmenené rozmery tlačítka ukončujúceho okno načítania údajov # ver. 1.3.2 # * v okne ukladania súboru zmenená farba informačného textu na prehľadnejšiu # * opravená chyba pri ukladaní súborov, použitá neexistujúca premenná # ver. 1.4 # * opravená chyba pri ukladaní súborov, použitá ďalšia neexistujúca premenná # * zmenená farba riadku pre chybové hlásenia v okne ukladania dát na prirodzenú bledomodrú # * pridaná možnosť odstránenia položiek zo zoznamu from tkinter import * import sys import os class Zaznamnik: Toto je trieda môjho záznamníku def __init__(self): self.hlavneOkno=Tk() self.hlavneOkno.title(Záznamník, Ver. 1.4) self.adresy=[] self.zoznamMena=[] def program(self): Táto časť programu bude mať za úlohu čisto len grafiku hlavného menu (nie logiku). self.HOuvodnypopisokLabel=Label(self.hlavneOkno,bg=lightblue,text=Vitajte v mojom záznamníku adries.\nDúfam, že sa vám bude páčiť.) self.HOuvodnypopisokLabel.grid(row=0,column=0,sticky=W+E+N+S) # uvodny popisok - label - ktorý nás privíta v programe self.HOtlacitkoZadavatAdresy=Button(self.hlavneOkno,bg=lightblue,activebackground=lightgreen,text=Pridať adresy do záznamníka) self.HOtlacitkoZadavatAdresy.grid(row=1,column=0,sticky=W+E+N+S) # tlačítko, ktoré by malo umožniť zadávanie adries self.HOtlacitkoOdstranitAdresy=Button(self.hlavneOkno,bg=lightblue,activebackground=lightgreen,text=Odstrániť adresu zo záznamníka) self.HOtlacitkoOdstranitAdresy.grid(row=2,column=0,sticky=W+E+N+S) # tlačítko, ktoré by malo umožniť odstránenie adries self.HOtlacitkoUlozit=Button(self.hlavneOkno,bg=lightblue,activebackground=lightgreen,text=Uložiť do súboru) self.HOtlacitkoUlozit.grid(row=3,column=0,sticky=W+E+N+S) # tlačítko, ktoré by malo umožnit uloženie do súboru
Re: [python] py2exe
Pythonní knihovny připoj ke svému projektu. Stačí aby byly v nějakém adresáři, který přidáš na začátek sys.path Například pokud máš knihovny v podadresáři (oproti spouštěcímu skriptu) pojmenovaném 'lib', udělej na začátku: import os.path os.path.insert(0, os.path.abspath('lib')) a poté je můžeš bez problémů importovat. Ale stejně jako u interpretru Pythonu platí, že pokud se jedná o nějakou běžnou knihovnu (PyGTK apod.), je lepší ji nainstalovat do systému (do site-packages) a stejně tak potřebný podpůrný software (např. GTK+ pro chod PyGTK). Na první pohled se to možná nezdá, ale ve Windows není běžné, aby každý program obsahoval všechno co potřebuje k chodu (např. .NET). Honza 2010/3/4 Petr Zlamal p.zla...@gmail.com Problem je, ze ja vyuzivam dalsi knihovny tretich stran a konkretne knihpvnu vtk jsem musel pro sve potreby zkompilovat. Vepro Jan Bednařík napsal(a): Programy pro Windows napsané v Pythonu (nebo využívající Python) to obvykle řeší v instalátoru. Při instalaci se podívají, jestli je Python přítomen, pokud ne, nainstalují ho sami. Honza 2010/3/3 Petr Zlamal p.zla...@gmail.com Nemusi to byt jeden soubor. Balikem myslim obrazne mit slozku se skripty, ktera bude fungovat nezavisle na naninstalovanych soucastich na konkretnim pocitaci. Samozrejme na konretni platforme. Petr Mach napsal(a): Jednim balikem myslis jeden soubor? To je dost neobvykle, obvykle se program sklada z rady souboru. 2010/3/3 Petr Zlamal p.zla...@gmail.com p.zla...@gmail.com: Jeste me napada. Existuje nejaky lepsi zpusob jak distribuovat pythoni skripty i s potrebnumi knihovnami v jednom baliku? Vepro Petr Zlamal napsal(a): To jsem jiz zkousel a v podstate si myslim ze je to supl parametru z prikazove radky. Petr Messner napsal(a): Zkus to nějak přidat do includes:http://www.py2exe.org/index.cgi/ScipyImportProblems PM 2010/3/3 vepro p.zla...@gmail.com p.zla...@gmail.com: Pratele, Zkousim udelat exe soubor pomoci py2exe pod win7 64bit. Uz jsem dosel do kroku kdy kompilace probehne a vytvori se exe soubor. V prubehu kompilace dojde k vypsani klasicke hlasky: The following modules appear to be missing + celkem obsahly seznam (musim rici, ze v aplikaci vyuzivam celkem dost externich knihoven: vtk,qt4,scipy). Nicmene po spusteni exe souboru program havaruje a v logu je zminka o nemoznosti natazeni modulu z balicku scipy. ImportError: No module named streams Myslim si, ze chyba musi byt v kompilaci pomoci py2exe jelikoz aplikace pri pusteni z interpretu funguje. Prikaz kterym kompiluji: python setup.py py2exe --includes sip,vtk,scipy,numpy Nejak nevim, proc nektere moduly pribali do kompilace a nektere ne. Umi nekdo poradit? Diky Vepro ___ Python mailing list ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ 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] py2exe
Programy pro Windows napsané v Pythonu (nebo využívající Python) to obvykle řeší v instalátoru. Při instalaci se podívají, jestli je Python přítomen, pokud ne, nainstalují ho sami. Honza 2010/3/3 Petr Zlamal p.zla...@gmail.com Nemusi to byt jeden soubor. Balikem myslim obrazne mit slozku se skripty, ktera bude fungovat nezavisle na naninstalovanych soucastich na konkretnim pocitaci. Samozrejme na konretni platforme. Petr Mach napsal(a): Jednim balikem myslis jeden soubor? To je dost neobvykle, obvykle se program sklada z rady souboru. 2010/3/3 Petr Zlamal p.zla...@gmail.com p.zla...@gmail.com: Jeste me napada. Existuje nejaky lepsi zpusob jak distribuovat pythoni skripty i s potrebnumi knihovnami v jednom baliku? Vepro Petr Zlamal napsal(a): To jsem jiz zkousel a v podstate si myslim ze je to supl parametru z prikazove radky. Petr Messner napsal(a): Zkus to nějak přidat do includes:http://www.py2exe.org/index.cgi/ScipyImportProblems PM 2010/3/3 vepro p.zla...@gmail.com p.zla...@gmail.com: Pratele, Zkousim udelat exe soubor pomoci py2exe pod win7 64bit. Uz jsem dosel do kroku kdy kompilace probehne a vytvori se exe soubor. V prubehu kompilace dojde k vypsani klasicke hlasky: The following modules appear to be missing + celkem obsahly seznam (musim rici, ze v aplikaci vyuzivam celkem dost externich knihoven: vtk,qt4,scipy). Nicmene po spusteni exe souboru program havaruje a v logu je zminka o nemoznosti natazeni modulu z balicku scipy. ImportError: No module named streams Myslim si, ze chyba musi byt v kompilaci pomoci py2exe jelikoz aplikace pri pusteni z interpretu funguje. Prikaz kterym kompiluji: python setup.py py2exe --includes sip,vtk,scipy,numpy Nejak nevim, proc nektere moduly pribali do kompilace a nektere ne. Umi nekdo poradit? Diky Vepro ___ Python mailing list ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ Python mailing listpyt...@py.czhttp://www.py.cz/mailman/listinfo/python ___ 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] Python a Windows Mobile letos
Ahoj, jen jedna technická - Windows Mobile jsou dnes de-facto mrtvá platforma, takže začínat vývoj pro ně nemá příliš smysl. Počkej si na specifikace nových Windows Phone 7, hodně věcí tam bude úplně jinak a staré aplikace s největší pravděpodobností nebudou úplně kompatibilní. Případně bych doporučil zaměřit se na Maemo, tam by neměl být žádný problém, případně kouknout jak je na tom s podporou Pythonu Android a iPhone OS. Honza 2009/11/12 Radek Holý radekholypub...@gmail.com Ahoj, chtěl bych se Vás zeptat, jak je to v této době s vývojem aplikací v Pythonu pro Windows Mobile. Našel jsem akorát PythonCE a ten už se (zdá se mi) pár let nevyvíjí. 1) Existuje ještě jiná možnost? 2) Ještě mě napadlo, že by se to možná dalo řešit IronPythonem nebo JPythonem. Je to tak? Děkuju, Radek ___ 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] Python a Windows Mobile letos
Vzhledem k tomu, že Windows Phone 7 mají úplně jinou filosofii GUI (jsou dělané na ovládání prstem, nikoliv stylusem), předpokládá se, že kompatibilita bude problém. Ale uvidíme co v Microsoftu vymysleli, zatím se v otázce kompatibility oficiálně nevyjádřili. Honza 2010/3/3 Radek Holý radekholypub...@gmail.com Samozrejme o ostatnich mobilnich platformach taky uvazuji, ale tam vim, ze to nejak pujde. Proto o nich nemluvim. Zatimco Windows Mobile nejdou. IronPython udajne bohuzel nejde (pokud se to nezmenilo), protoze neni kompatibilni s .NET compact framework. O tom, ze Windows Phone 7 budou uplne jine jsem slysel, ale myslel jsem, ze to je zas jen marketing (predelaji vzhled a spoji se socialnimi sitemi) - netusil jsem, ze bude zmena i v oblasti kompatibility aplikací. Ale i tak by se mi libila kompatibilita s Windows Mobile, protoze aspon v mem okoli jsou hodne rozsirene. Radek Dne 3. března 2010 13:01 Martin Stiborský martin.stibor...@gmail.com napsal(a): Nejlépe je na tom s Pythonem Maemo, je to absolutně bez problémů, programování jako na desktopu. Na iPhone to s Pythonem jde taky, ale není to zrovna příjemné programování, já jsem na to nervy neměl. 2010/3/3 Jan Bednařík jan.bedna...@gmail.com: Ahoj, jen jedna technická - Windows Mobile jsou dnes de-facto mrtvá platforma, takže začínat vývoj pro ně nemá příliš smysl. Počkej si na specifikace nových Windows Phone 7, hodně věcí tam bude úplně jinak a staré aplikace s největší pravděpodobností nebudou úplně kompatibilní. Případně bych doporučil zaměřit se na Maemo, tam by neměl být žádný problém, případně kouknout jak je na tom s podporou Pythonu Android a iPhone OS. Honza 2009/11/12 Radek Holý radekholypub...@gmail.com Ahoj, chtěl bych se Vás zeptat, jak je to v této době s vývojem aplikací v Pythonu pro Windows Mobile. Našel jsem akorát PythonCE a ten už se (zdá se mi) pár let nevyvíjí. 1) Existuje ještě jiná možnost? 2) Ještě mě napadlo, že by se to možná dalo řešit IronPythonem nebo JPythonem. Je to tak? Děkuju, Radek ___ 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 -- S pozdravem Martin Stiborský Jabber: st...@njs.netlab.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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Pracovní příležitost
Dobrý den, doufám že tu nikomu nebude vadit nabídka práce, přece jen jí v této oblasti v ČR není mnoho. Hledáme do týmu programátora webových aplikací v Djangu (Pythonu). Čím více znalostí a zkušeností s Pythonem a Djangem, tím lépe. Není to však nutná podmínka, důležité je vědět oč jde a ochota (nadšení) učit se nové věci. Požadavky: - zkušenosti s programováním webů v některém skriptovacím jazyku (Python, Ruby, PHP,...) - dobrá znalost XHTML a CSS - základní znalosti relačních databází a SQL - znalost jQuery/JavaScript výhodou - základní znalost GNU/Linux či podobných OS - angličtina - němčina výhodou - zodpovědnost a spolehlivost - schopnost práce v týmu i samostatně plnit úkoly Nabízíme: - HPP případně práci na ŽL - zázemí nadnárodní firmy - dobré platové ohodnocení - pružnou pracovní dobu Primárně se jedná o práci z domu (komunikace přes internet), ale 1x až 2x týdně se scházíme v kanceláři v Prostějově. Tzn. pracovní doba je 40h týdně a většinou je jen na Vás, jak si čas zorganizujete. Tento systém od Vás vyžaduje schopnost organizovat si čas a zodpovědnost. Prvních pár dní/týdnů spolupráce bude pochopitelně potřeba scházet se častěji. V případě zájmu mne kontaktujte na jan.bedna...@gmail.com nebo +420 733 163 988 Přeji pěkný den Jan Bednařík ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] pymssql a collation
Po připojení (vytvoření cursoru) proveď SQL: SET NAMES 'cp1250'; Info zde: http://molhanec.net/mysql_cestina_minifaq.html Honza 2009/9/8 zu1234 zu1...@seznam.cz: Pokud se připojím na MS-SQL databázi pomocí pymssql dostávám data v kódování cp852 ('dosová čeština') přesto že kódování dat je Czech_CI_AS což je cp1250 ('windows čeština'). ??? Je to vlastnost nebo chyba? Dá se to změnit? ZU ___ 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
[python] Filozofická otázka ohledně synt axe
Přeji pěkný den, narazil jsem na takový filozofický problémek ohledně syntaxe zdrojového kódu. Mám třeba takový kód (foo může být None): if foo: x = foo.fce() else: x = bar.fce() Šlo by to napsat elegantněji takto: x = foo or bar x = x.fce() Dnes mě ale napadlo napsat tohle: x = (foo or bar).fce() Nějak se mi to nelíbí, nesedí mi to volání metody na závorce, ale hlavně asi proto že jsem to nikdy nikde neviděl. Co myslíte, je vhodné to tak psát? Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] chci se naučit python
Ahoj, souhlasím, tutoriál je ideální začátek. Důležité čtení je PEP 8 - doporučení/standard pro psaní zdrojových kódů. http://www.python.org/dev/peps/pep-0008/ Pak si prolítni Language Reference http://docs.python.org/reference/ a Library Reference (pro začátek stačí do 7. kapitoly) http://docs.python.org/library/ Jinak v Linuxu stačí: $ python a pustí se ti interpretr, kde můžeš zkoušet cokoliv (je to nejlepší kalkulačka ;-) A vzhledem k tvým zkušenostem bych předem zmínil jednu věc z OOP - zapomeň na settery a gettery :-) Python má implementován princip zapouzdření lépe než je běžné v jiných OO jazycích. Přistupuje se přímo k atributům a jen když je třeba, přetěžíš funkci/chování pro čtení či přiřazení hodnoty atributu zpětně pomocí tzv. properties. Honza 2009/4/20 Leos Pol leos@firma.seznam.cz: Ahoj, pri tvych zkusenostech bych se nevrhal na nejakou knizku, ale prosel bych si tutorial na http://docs.python.org/tutorial/. Zabere ti to dva dny a budes vedet vsechno pro to, abys zacal. Pak uz staci jen programovat a programovat. Ale zalezi na cloveku, jak je zvykly se ucit... Leo Jakub Fišer wrote: Zdravíčko! Chci proniknout do tajů pythonu, nejdřív spíš po stránce jazyka samotnýho, pak možná vývoje aplikací nad pygtk (příp. jiný běžný toolkit, na tom už tolik nesejde). Mam zkušenosti s Javou, C/C++, Pascalem/Delphi, Bashem a principy objektového programování chápu dobře, jde mi jen o pochopení specifik pythonu, vyvíjet budu v Linuxu a FreeBSD. Co byste mi doporučili za literatutu, případně weby? Google toho zná spoustu, ale neřeke mi žádný zkušenosti... díky, -miky ___ 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] Více proměnných ve smyčce FOR
Musíš z toho nejdřív udělat seznam obsahující tuple, než to proženeš forem. Třeba takto: ... for n, c in map(lambda a,b: (a,b), nazvy, cisla): ... Honza 2009/3/1 Vasco vasco@gmail.com: Zdravím, řeším v Pythonu následující problém: mám dvě proměnné: nazvy = ['jedna', 'dva', 'tri', 'ctyri'] cisla = [1, 2, 3, 4] Potřebuji vytvořit slovník, který bude obsahovat něco takového: vysledek = {'jedna': 1, 'dva': 2, 'tri': 3, 'ctyri': 4} Napadlo mně použít tento způsob s využitím FOR: vysledek = {} for n, c in nazvy, cisla: vysledek[n] = c print vysledek Při zpracování dojde k chybě: ValueError: too many values to unpack Očividně je ten způsob zápisu 'for' špatný. Mám ale pocit, že jsem někde něco podobného viděl. Proto bych se rád zeptal. Dá se toto řešit výše uvedeným způsobem (jen mám někde syntaktickou chybu), anebo jsem úplně vedle a podobná konstrukce v Pythonu nejde? S pozdravem, Vasco ___ 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] Python a VisualBasic 5
Otázka je jaký toolkit používáš, možností je spousta. Stačí si jen vybrat, co ti bude vyhovovat - Tk, PyGTK, PyQt, wxPython,... Pokud chceš vyloženě navrhovat GUI v GUI, koukni např. na PyGlade. Honza 2009/2/26 martin jirasek jer...@seznam.cz: Ja to propojeni potrebuju z duvodu zbytecne sloziteho vytvareni GUI v pythonu. Vytvarim aplikace kde se vyuziva velkeho nnozstvi vstupu vystupu a takze python je v tomto pro mne dost neohrabany. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] PyGTK, crontab, a já :)
Proč tam to pygtk vůbec je, když ho nepoužíváš? Pyinotify je zcela samostatný modul a nepotřebuje ke svému chodu GTK ani X server. Honza 2009/2/3 calis.mar...@seznam.cz: Hmm, A: tá proměná by měla být DISPLAY=:0? pygtk nepouzivam, jenom modul pynotify B: Jakou má ten DBUS trvanlivost? Po dobu celé session? protože já ten script spouštím každou hodinu takže už mam grafický rozhraní nastartovaný.. Původní zpráva Od: slush sl...@slush.cz Předmět: Re: [python] PyGTK, crontab, a já :) Datum: 03.2.2009 20:37:18 Je to, jak psal Filip, složitější, každopádně to má řešení. a) v crontabu by na začátku měla být korektně nastavena proměnná DISPLAY, která řekne aplikaci, s kterým X serverem má povídat. Případně jsem teď našel čistě pythoní řešení na http://www.le-web.org/2008/11/06/pygtk-how-to-display-a-systray-icon-from-a-cronjob/ b) D-BUS funguje na principu klient (Vaše aplikace) - server (DBUS daemon) modelu. Pokud aplikaci pouštíte jako root, může komunikovat jen se systémovou DBUS sběrnicí (na které mmj visí HAL apod). Pokud je crontab uživatelův, aplikace si může vybrat systémovou nebo session sběrnici (existuje separátně pro každého přihlášeného uživatele). Co děláte v aplikaci špatně je, že předpokládáte, že DBUS již běží. Já bych to řešil periodickým pokusem o připojení a při neúspěchu neukončoval aplikaci (a předpokládal, že dbus za chvíli naběhne). Marek ___ 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] Python a ukazatele
2009/1/15 Vlada Macek tut...@sandbox.cz: martin jirasek wrote: Dobrý den, zajímalo by mne, zda Python zná něco jako ukazatele. Kouknul jsem na pár webových stránek, ale moudřejší z toho nejsem, vypadá to spíš, jako by toto python neuměl. Primo ukazatele nema, protoze vlastne nejsou potreba. Pro upřesnění bych dodal, že prakticky všechny identifikátory v Pythonu jsou ukazatele. Chovají se tak nějak intuitivně - při přiřazení nějaké hodnoty dojde ke kopii té hodnoty, zatímco při přiřazení instance objektu dojde jen k vytvoření dalšího ukazatele na ten sám objekt. Asi takto: a = 1 b = a a = 2 print a 2 print b 1 c = [1, 2, 3] d = c c[0] = 9 print c [9, 2, 3] print d [9, 2, 3] def f(x): ... x[0] = ahoj ... e = [1, 2] f(e) print e ['ahoj', 2] Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] mod_python - problém s vícenás obným spuštěním jednoho skriptu
No zkusil bych ten script napsat podle manuálu. V publisher handleru se nepoužívá req.write(), ale na konci každé funkce použiješ return kterým předáš celou stránku. Viz. mauál http://www.modpython.org/live/current/doc-html/hand-pub.html nebo pěkný tutoriál na http://webpython.codepoint.net/mod_python_tutorial Honza Doufám, že se najde někdo, kdo něco takového již řešil. Ještě přidám kód, který je potřeba k simulaci problému: def index(req): import time req.content_type=text/plain req.write(working...) time.sleep(10) req.write(\ndone) Předem děkuji za každou odpověď, která mi pomůže hnout se z místa. Koumes21 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Faktorizace
Dne 12. prosinec 2008 16:34 Jakub Vojáček jak...@seznam.cz napsal(a): Dobrý den, Vyvýjím jednu aplikaci a potřebuji, aby daná aplikace uměla rozložit číslo na součin prvočísel (prvočíselný rozklad). Naprogramovat nějaký základní algoritmus není problém, ale problém nastane, pokud do algoritmu zadám nějaké větší číslo (např. 4848484848484841178813). Mému algoritmu toto číslo trvá dost dlouho, ale například na této stránce dostanu výsledek takřtka okamžitě: http://www.numberempire.com/primenumbers.php Není to náhodou tím, že ta stránka dělá něco úplně jiného - nerozkládá na součin prvočísel, ale jen zjišťuje, jestli je číslo prvočíslo? :-) Jaký algoritmus byste mi doporučili používat? Na menší čísla se dá použít faktorizace dělením: def faktorizace_delenim(i): prvocisla = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] seznam=[] cislo = 0 while len(prvocisla) != cislo: if i%prvocisla[cislo] == 0: seznam.append(prvocisla[cislo]) i = i/prvocisla[cislo] else: cislo = cislo +1 if i == 1: break seznam.append(i) return seznam ale tenhle algoritmus má tu nevýhodu, že bych ten seznam prvočísel (o velikost od 0 do sqrt(i)) musel vygenerovat, což trvá dost dlouho. Naštěstí seznamy prvočísel vygenerovala spousta lidí před tebou, stačí je jen k tvému programu přiložit. Např. http://primes.utm.edu Pokud ale budeš chtít k programu přiložit víc než prvních pár miliónů prvočísel, doporučuju uložit si jejich databázi metodou popsanou zde http://www.rsok.com/~jrm/printprimes.html Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Python CGI
Dobrý den, a proč nepoužiješ rovnou mod_python? Na web4ce.cz funguje a rozhodně je to mnohem efektivnější řešení než CGI skripty. Honza Dne 27. říjen 2008 18:52 martin jirasek [EMAIL PROTECTED] napsal(a): Dobrý den, Pokouším se o spuštění skriptu cgi, ale bez úspěchu. Do souboru .htaccess jsem vepsal příkazy povolující jejic spouštění: -- Options +ExecCGI AddHandler cgi-script .py AddHandler cgi-script .cgi -- V skriptu (python). By mělo být vše dobře: -- #!/usr/bin/python import cgi print 'Content-type: text/plain; Charset=iso-8859-2' print ' ' print 'Python' -- Skript je uložen s koncovkou .cgi, ale zkoušel jsem i .py. Přesto se mi vrací internal server error. Mam hodting podporujici cgi a python (web4ce.cz, program START). nevim si rady ___ 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] vytvoření programu pro odesíl ání a přijímání textových zpráv
To se dá vyřešit tak, že připojíš mobil k počítači datovým kabelem. K odesílání a čtení přijatých sms poté poslouží tzv. AT příkazy. Co se týče samotného programu, je třeba jen vygooglit, jak se v Pythonu řeší komunikace po sériovém portu (COM), kam bude ten mobil pravděpodobně připojen. Honza 2008/10/8 Jarek Krcmar [EMAIL PROTECTED]: Dobrý den Pythonýři, chtěl bych napsat program, který by umožňoval psát textové zprávy a odesílat je na telefony Vodaphone, O2 a T-mobile a také přijímat textové zprávy zpět na počítač. Problém je jen v tom, že nevím, jak na to. Poraďte mi prosím, jak na to a také bych chtěl používat vstup z klávesnice. Díky moc. Jarek ___ 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] MySQL - nativní rozhraní pro Python
2008/6/29 Jirka Vejrazka [EMAIL PROTECTED]: Možná to k ničemu nebude, ale přihodím trošku do mlýna :-) Momentálně na jednom projektu ke zjednodušení práce s databází (konkrétně MySQL) používám Django. Je sice určené na vývoj webových aplikací, ale vrstva která se stará o databáze je pro mé účely vyhovující a zbytek frameworku prostě ignoruju. Třeba to pomůže... Jirka Na to bych použil spíš SQLAlchemy, ale i ořezané Django může být příjemné řešení. Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] MySQL - nativní rozhraní pro Python
2008/6/29 zu1234 [EMAIL PROTECTED]: Doufám že to někdo nevezme jako provokaci, ale opravdu by mi občas bodlo dostat se prostě do obrazu. Takže, byl by někdo ochotný obeznámit nás začátečníky s pojmy jako je SQLAlchemy a Django. Ale prosím opět polopatě a prakticky a lidsky. ZU SQLAlchemy je aplikace, která ti umožní pracovat s tabulkami a záznamy v databázi jako s běžnými objekty. Je určena pro integraci do jiných aplikací, jako databázová vrstva. Nemusíš tak být odborník na SQL, aby jsi mohl jednoduše a pohodlně pracovat s databází, teoreticky ani nemusíš vědět, jak databáze fungují a co to SQL je. Koukni na http://www.sqlalchemy.org/docs/05/ormtutorial.html a pochopíš, oč jde. Django je RAD (Rapid Application Development) framework pro tvorbu internetových aplikací. Funguje na principu MTV = Model Template View. V první úrovni - Model - nadefinuješ modely. To jsou třídy reprezentující tabulky v databázi a jejich závislosti a pak s nimi pracuješ jako s objekty. Je to hodně podobné jako ta SQLAlchemy s hlavním rozdílem v tom, že nedefinuješ jen typické datové typy (varchar, int, atd.), ale můžeš použít i speciální jako EmailField, IPAddressField, apod., které jsou v databázi uloženy třeba jako obyčejný varchar, ale při práci mají speciální schopnosti, jako třeba že ten EmailField při přiřazení kontroluje, zda je hodnota platná e-mailová adresa. Teď trochu odbočím, ale musím prozradit jednu z bezkonkurenčních (pokud jsem dobře informován) výhod Djanga oproti jiným webovým frameworkům, a tou je automaticky generovaná administrace. Na základě zadefinovaných modelů generuje velmi propracované administrační rozhraní. Proto je tam taky spousta různých datových typů, které ve výsledku mají vliv jen na chování té administrace (různé formulářové prvky s JS/AJAX vylepšeními). A když jsou nadefinované modely, přide na řadu část View. To znamená nadefinovat šablony pro URL a k nim odpovídající view funkce, které se mají zavolat (dle potřeby s parametry získanými z URL). Tady je to hlavně o hraní s objekty modelů. Ve view získáš potřebná data, která se zpracují v poslední části - Template. Template jsou (X)HTML (nebo XML, nebo jakékoliv jiné) soubory, které obsahují speciální značky, které Django nahradí hodnotou z view. Pole hodnot vypíše cyklem. Aplikuje na hodnoty různé výstupní filtry třeba na pěkné zobrazení data či zaokrouhlení měny. A tak podobně. Je toho spousta, co by šlo o Djangu napsat, doporučuji ale rovnou zkusit. Je to zábava s ním pracovat. Ještě jsem si vzpoměl na jedno video z nějaké přednášky o Djangu, které stojí za to shlédnout http://video.google.com/videoplay?docid=-70449010942275062q=djangoei=7mhpSMG7Jpyc2wLx8dyoCg Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Guido o funkcich reduce(), filter() a map() v Python 3000
Musím Vás zklamat, Python je jeden z nejpomalejších interpretovaných jazyků. Je to daň za špatný runtime Pythonu (který neobsahuje téměř naprosto žádné optimalizace, a třeba JIT je zcela utopickým snem) a dále daň za velkou obecnost jazyka, která je velmi příjemná pro vývojáře, ale nese si svou daň ve zpomalení. Python je oborovský pomalík. Stále mě nabádáte, abych si našel nějaká fakta. Taky byste to měl někdy zkusit. Ale souhlasím s tím, že by Python mohl běžet ještě rychleji, což dokazuje třeba Psyco. Problém je kdekoli, kde předěláváte produkční kód, není-li pro to vážný důvod. A problém je to proto, že to nikdy není zadarmo - vždy to hodně stojí - času, peněz, stability, a leččehos dalšího. U hotové aplikace není důvod ani potřeba nic přepisovat. Nevím, jakou máte představu o tom, jak přejít na Python 3000, ale nikdo netvrdí, že musíte ze dne na den přejít z Pythonu 2.5 na Python 3000 (klidně můžete zůstat na Pythonu 2.5 až do smrti, přítomnost Pythonu 3000 ho nezruší). U většiny aplikací, u kterých probíhá vývoj, při plynulém přechodu na Python 2.6 a pak na Python 3000 s využitím připravených nástrojů, žádné extra náklady navíc nevzniknou. Kolik procent projektů používá nějaký jazyk vůbec nic nevypovídá o kvalitě toho jazyka, viz. např. PHP. Důležité je na jaké projekty ten jazyk lidé používají. Vypovídá to ne o kvalitě jazyka, ale o komplexním součtu působení různých vlivů - kvalita jazyka, podpora vývojářů, dostupnost prostředků, serióznost tvůrce jazyka a jeho úcta k práci vývojářů a nebo neúcta pokud jim jazyk rozorává pod rukou, marketink, záruky, pověst, o tom, zda je to třeba nejlepší jazyk pro určitou oblast, atd. atd. atd.. Takže je těch vlivů tolik, že stejně nelze určit, proč je Python někdy populární více a jindy méně. Tohle je jen otázka úhlu pohledu. Co jsem tak různě pochytil tak reakce na změny v Pythonu 3000 jsou většinou pozitivní. Ano jsou. Stejně tak jako reakce na Hitlera u miliónu Němců byly také povětšinou pozitivní například. Tímto chci říct, že pravda není závislá na počtu jejích zastánců. A pravda se nedá odhlasovat. I v případě Hitlera byla drtivá většina lidí, kterých se jeho činy dotýkaly, proti. V demokratické společnosti platí názor většiny, a pokud je většina pro změny, nic s tím nezmůžete. Je to blbej systém, ale ty ostatní jsou jenom horší. Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Guido o funkcich reduce(), filter() a map() v Python 3000
Dne 26. červen 2008 13:44 superman [EMAIL PROTECTED] napsal(a): Python je jazyk, který se používá v rychlostně kritických aplikacích. Né úplně doslova, nejnáročnější komponenty se píší v C případně C++ a Python slouží jako nástavba pro rychlý vývoj s těmito komponentami. Sám to popíráte - Python se nepoužívá v rychlostně kritických aplikacích, protože komponenty se pak píší v C, C++ a dalších jazycích orientovaných na rychlost. A toto vlákno se týká psaní kódu v Pythonu - a rychlost se tu objevila pouze v té souvislosti, že psaní na max. rychlost někdy (ale velmi velmi ukrutně zřídka, aby to tu někdo nepoužíval jako argument) ospravedlňuje hnusné změny a zásahy. A protože v Pythonu se nepíší rychlostně kritické věci (sám jsem napsal, že se tyto části napíší třeba v C), nejsou tyto věci ospravedlněním pro špatné zásahy pana Rosauma do Pythonu. Abych tak nějak polopaticky shrnul několik příspěvků a o co v nich šlo. Nepomůžou vám skvělé komponenty v C/C++, když s nimi pracujete v pomalém jazyku jako třeba PHP. V poměru komfort + rychlost vývoje ku rychlost zpracování jazyka je na tom Python hodně dobře a je to jeho obrovská konkurenční výhoda. Ale i tak jsou nároky na jeho rychlost obrovské a to že jeho rychlost převážně převyšuje ostatní interpretované jazyky je jeden z hlavních důvodů, proč je Python tak rozšířený. Za zmínku stojí třeba Google, které je postaveno převážně na kombinaci C/C++ a Python, stejně tak Seznam.cz, nebo třeba serverová farma MMORPG hry EVE Online. Rychlost je taky jeden z důvodů, proč se dělají některé změny v Python 3000 a proč nebude donekonečna zachovávána zpětná kompatibilita. Rychlost Pythonu převyšuje ostatní jazyky :-) Co já se tu nedozvím :-) Pravda je opačná, Python je jedním z nejpomalejších. Ale ono to nevadí, protože rychlost ve věcech, kde se nasazuje Python není kritická, alespoň ne v těch částech, kde se vykonává Python kód. Protože jinak by nasazení Pythonu byla špatná volba - skoro cokoli za jiný jazyk je lepší pokud jde o rychlost. Je tam napsáno interpretované jazyky. Tam má většinou navrch. Je zásadní rozdíl, jestli bude aplikace napsaná třeba v PHP a bude muset běžet na čtyřech serverech, nebo bude v Pythonu a bude stačit server jeden. Síla Pythonu je jinde - je to jazyk s ukrutně rychlým vývojem programů. Jazyk s udržovatelným kódem, kde bez problémů můžete oprašovat milióny řádků a není problém. S tím souhlasím, ale tímto si protiřečíte, když jinde tvrdíte, že přechod na Python 3000 (= oprášit pár řádků kódu) by měl být problém. A k několika konkrétním příkladům bych dodal - jedna vlaštovka jaro nedělá. Mě nezajímá pár firem, co jí používá, mě zajímá kolik procent projektů jí používá. A upřímně velmi doporučuji také po čase udělat si graf procent a zhodnotit propad Pythonu v důsledku hrátek pana Rossuma. Ten propad už se totiž nevyrovná nikdy v budoucnosti. Nepolemizujte se mnou, ale sami si dejte dohromady skutečná data. Kolik procent projektů používá nějaký jazyk vůbec nic nevypovídá o kvalitě toho jazyka, viz. např. PHP. Důležité je na jaké projekty ten jazyk lidé používají. Jestli to bude propad, nebo naopak vzestup nelze předem odhadnout. Ale já bych si na propad nevsadil. Mimochodem, úspěšně jsem složil test na vývojáře pro Google, takže něco vím. Hlavní, co požadují je Java, ocení C++, nějak kolem Pythonu se moc nemluvilo. Nakonec problém byl, že nejsem s to komunikovat plynule perfektní angličtinou po telefonu. Ohledně her se záruky nepožadují. Jakpak dlouho se prodává hra? Rok? Dva? Určitě se kód hry neudržuje nijak dlouhou dobu oproti jiným odvětvím IT. Věřím, že tam Python a Rossum není problém. Znovu říkám, jako hračka a pro hraní, stejně tak na jednorázové věci není důvod Python nepoužít. V případě EVE se jedná o roky (6+) probíhajícího vývoje, který jen tak neskončí. Stejně stále nechápu, z čeho máte strach. Python už dnes není jen Guido, ale stojí za ním poměrně velká nadace, sponzoři a vývojáři Pythonu a komunita vývojářů v Pythonu. Guido neupravuje a ani nemůže upravovat Python jen tak podle toho, co ho zrovna napadne. Ani změny ve verzi Python 3000 nejsou jen jeho výmysl. Má sice poměrně velké slovo, ale když by zblbnul, tak se bez něj obejdou. Proto bych se nebál, že se z Pythonu stane nějaký nepoužitelný balast. He he, tak teď koukám a hledím. Právě teď Rossum dlouhou dobu blbne. Ne kdyby zblbnul, on teď dlouhodobě blbne! A nikdo nezasáhne. Kdyby kdokoli takhle blbnul v případě komunity třeba Fortranu, C, C++, Javy, Ady, C#, a vůbec většiny jazyků, byl by Rossum odstaven coby dup a ještě by všude o něm psali jako o pomatencovi. To píšu zcela bez emocí, protože tak by to bylo. Ve světle současných událostí věty jako proto bych se nebál považuji za utopii. Miloslav Ponkrác Tohle je jen otázka úhlu pohledu. Co jsem tak různě pochytil tak reakce na změny v Pythonu 3000 jsou většinou pozitivní. Honza ___ Python
Re: [python] Guido o funkcich reduce(), filter() a map() v Python 3000
Dne 26. červen 2008 11:38 superman [EMAIL PROTECTED] napsal(a): Ano, jak tu někdo uváděl - záruky jsou někdy buzzword. Nicméně této změně rozumím, protože je to snaha optimalizovat Oracle na lepší výkon. Myslím, že už jsem to tu někdy napsal - jakmile potřebujete optimalizovat na rychlost, jde všechno hezké stranou - udržovatelnost, kompatibilita, čitelnost kódu A že vnitřních změn v Oracle (kterou při optimalizaci na rychlost museli promítnout navenek) je hodně mezi verzemi. Vezměte to tak - jakýkoli luxus v programování něco stojí - je jedno, jestli mluvíme o zapouzdření do objektů, abstraktních rozhraní, kompatibilita, čitelnost, snadnost programování, atd. atd. atd.. A pokud jedete na maximální rychlost, tohle všechno stojí rychlosti v cestě. A musíte se toho zbavit. Nicméně Python určitě není jazyk, který by se používal v rychlostně kritických věcech. Miloslav Ponkrác Python je jazyk, který se používá v rychlostně kritických aplikacích. Né úplně doslova, nejnáročnější komponenty se píší v C případně C++ a Python slouží jako nástavba pro rychlý vývoj s těmito komponentami. Ale i tak jsou nároky na jeho rychlost obrovské a to že jeho rychlost převážně převyšuje ostatní interpretované jazyky je jeden z hlavních důvodů, proč je Python tak rozšířený. Za zmínku stojí třeba Google, které je postaveno převážně na kombinaci C/C++ a Python, stejně tak Seznam.cz, nebo třeba serverová farma MMORPG hry EVE Online. Rychlost je taky jeden z důvodů, proč se dělají některé změny v Python 3000 a proč nebude donekonečna zachovávána zpětná kompatibilita. Stejně stále nechápu, z čeho máte strach. Python už dnes není jen Guido, ale stojí za ním poměrně velká nadace, sponzoři a vývojáři Pythonu a komunita vývojářů v Pythonu. Guido neupravuje a ani nemůže upravovat Python jen tak podle toho, co ho zrovna napadne. Ani změny ve verzi Python 3000 nejsou jen jeho výmysl. Má sice poměrně velké slovo, ale když by zblbnul, tak se bez něj obejdou. Proto bych se nebál, že se z Pythonu stane nějaký nepoužitelný balast. Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] sqlite3 a dotazy z promenne
Máš v kódu navíc nějaký středníky navíc. A taky se pořádně podívej, jak se pracuje s cursory v Python DB-API 2, snažíš se o SQL Injection. V tomhle případě bys měl udělat: self.c.execute(self.query) a pro dotazy s parametry by to mělo vypadat takto: self.c.execute(self.query, self.params) kde: self.query = SELECT * FROM tabulka WHERE sloupec1 = %s AND slouopec2 = %s self.params = (hodnota1, hodnota2) Víc si nastuduj v tom Python DB-API 2 a v dokumentaci k té knihovně co používáš. Mimochodem ta třída je divná, opravdu má vypadat takhle? Honza 2008/6/25 Tomas Pelka [EMAIL PROTECTED]: Zdravim konferenci, narazil sem na problem vkladani databazovych dotazu z promenne, resp. parametru. Popisi situaci, mam tridu dejme tomu data: import sqlite3 class Data: def __init__(self,query): self.query = query self.conn = sqlite3.connect('db.db') self.c = self.conn.cursor() self.c.execute('%s' % self.query); def getRow(self): return self.c.fetchone() * Chtel bych ji jako parametr zadavat cely databazovy dotaz (Pokud je to spatne cesta poradte jak na to prosim.). Pouziji-li teoreticky nebezpecnou metodu s retezcem (%s) dostavam tohle: import data d = data.Data(SELECT * FROM main_t;) Traceback (most recent call last): File stdin, line 1, in module File data.py, line 10, in __init__ self.c.execute('%s' % self.query); sqlite3.OperationalError: near SELECT: syntax error Pouziji-li dle dokumentace bezpecnou metodu (self.c.execute('?', (self.query));) dostavam tohle: import data d = data.Data(SELECT * FROM main_t;) Traceback (most recent call last): File stdin, line 1, in module File data.py, line 10, in __init__ self.c.execute('?', (self.query)); sqlite3.OperationalError: near ?: syntax error Dekuji za rady, hezky den vsem. -- S pozdravem Tomáš Pelka e-mail: [EMAIL PROTECTED] ___ 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] Guido o funkcich reduce(), filter() a map() v Python 3000
Dne 25. červen 2008 17:31 superman [EMAIL PROTECTED] napsal(a): Ano, a starší verze Pythonu bez toho, aby jí někdo udržoval bude běhat na dalších verzích operačních systémů? Budou běhat s novějšími, i budoucími verzemi databází? Internetových protokolů? Ono je potřeba si uvědomit, že okolí Pythonu se mění a neudržovaný Python runtime vyhodí ze hry coby dup. Dám jiný příklad: Dnešním kompilátorem bez problémů přeložím 20 let starý C program, a to bez ohledu na to, že původně byl napsán pro jiný operační systém (dnes už neexistující) - a výsledný program dělá to samé beze změny písmenak v kódu. A jazyků, které tohle dokáží není až tak málo. Takovým jazykům se říká seriózní. Miloslav Ponkrác Takovým jazykům se říká kompilované. Ale zas tak ideálně to nefunguje, ale podle této teorie si můžete interpretr pythonu starší verze zkompilovat i na novějších verzích operačních systémů. Ale hlavně nechápu, že vám nevadí, že se nekompatibilně změní databáze, internetové protokoly, atd., ale že se vyvyne a změní taky Pathon je problém. Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Guido o funkcich reduce(), filter() a map() v Python 3000
Dne 25. červen 2008 18:22 superman [EMAIL PROTECTED] napsal(a): Ale hlavně nechápu, že vám nevadí, že se nekompatibilně změní databáze, internetové protokoly, atd., ale že se vyvyne a změní taky Pathon je problém. Ano? Já tedy nevím o databázi, která by nekompatibilně změnila API, nebo SQL. Stejně tak nevím o tom, že by se TCP/IP protokoly nějak bouřlivě měnily. Všechno se mění a zpětná kompatibilita se neudržuje donekonečna nikde. Vývoj Pythonu může působit jako příliš rychlý, ale ve skutečnosti to bude nějaký ten rok trvat a každý bude mít dost času se přizpůsobit. Na druhou stranu věci které se dostatečně nevyvýjí a nepřizpůsobují časem narazí, jako třeba ten TCP/IP protokol. Přechod na IPv6 pro vývojáře rozhodně nebude taková sranda, jako kosmetické změny v Pythonu. To, že se změní Python je problém - protože k tomu není vůbec žádný důvod. Nic to nepřinese, kromě estetického pocitu pana Rossuma. Zato starosti a náklady na změnu nejsou vyváženy mohutnými přínosy. Miloslav Ponkrác Mě nepřipadá že by ty změny byly zas tak zásadní, aby se jim nedalo poměrně jednoduše přizpůsobit bez nějakých extra nákladů. Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Guido o funkcich reduce(), filter() a map() v Python 3000
Dne 25. červen 2008 19:12 superman [EMAIL PROTECTED] napsal(a): Jan Bednařík napsal(a): Dne 25. červen 2008 18:22 superman [EMAIL PROTECTED] napsal(a): Ale hlavně nechápu, že vám nevadí, že se nekompatibilně změní databáze, internetové protokoly, atd., ale že se vyvyne a změní taky Pathon je problém. Ano? Já tedy nevím o databázi, která by nekompatibilně změnila API, nebo SQL. Stejně tak nevím o tom, že by se TCP/IP protokoly nějak bouřlivě měnily. Všechno se mění a zpětná kompatibilita se neudržuje donekonečna nikde. Znovu se tedy ptám na konkrétní případ nekompatiblity v databázích, a pod.. Vývoj Pythonu může působit jako příliš rychlý, ale ve skutečnosti to bude nějaký ten rok trvat a každý bude mít dost času se přizpůsobit. Prosím Vás, proč je nazýváno vývojem syntaktická změna, která nic jiného, než estetický pocit pana Rossuma neznamená? Já chápu vývojem třeba rychlejší rozhraní, vyšší funkčnost třeba internetových protokolů, rychlejší práci s daty, atd. atd. atd.. Ale dohadování se o tom, jestli tam bude reduce, nebude reduce - to není vývoj, to je puntičkářství. Navíc puntičkářství, které v praxi kromě problémů nikomu nic moc nepřinese. Na druhou stranu věci které se dostatečně nevyvýjí a nepřizpůsobují časem narazí, jako třeba ten TCP/IP protokol. Přechod na IPv6 pro vývojáře rozhodně nebude taková sranda, jako kosmetické změny v Pythonu. Ale znovu říkám, IPv6 má alespoň cíl něco zlepšit - konkrétně hlavně řešit malý počet IP adres v IPv4. Tudíž není dělám jen proto, že by si někdo hrál a maskoval to bohulibými důvody, ale je tu skutečný praktický důvod této změny. A jak vidíte, tato změna se snaží prosadit už obrovskou spoustu let a nic moc. Ale co prudce praktického, výhodného třeba přinese vyhození reduce a změny syntaxe? Myslím nějaký přínos, kterým je možné zdůvodnit náklady na komplikace, které tím vzniknou? To, že se změní Python je problém - protože k tomu není vůbec žádný důvod. Nic to nepřinese, kromě estetického pocitu pana Rossuma. Zato starosti a náklady na změnu nejsou vyváženy mohutnými přínosy. Miloslav Ponkrác Mě nepřipadá že by ty změny byly zas tak zásadní, aby se jim nedalo poměrně jednoduše přizpůsobit bez nějakých extra nákladů. Nejde o zásadnost změn. První otázka je, proč tam jsou? Proč dělat změny, které nic nepřinesou? Miloslav Ponkrác Mám tři otázky: Četl jste, jaké změny se chystají (všechny)? Víte o existenci Python 2.6 a máte představu o tom, jak by měl probíhat přechod na Python 3000? Když už se dělá spousta zásadních a užitečných změn, které nejsou zpětně kompatibilní, je takový problém, když se přitom udělá pár změn, které tak přínosné nejsou (relativně)? Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] POZOR NA NEŽÁDOUCÍ VLIVY
Mail od Seznamu je taky Javascriptovej, jen je oproti Gmailu vývojově dost pozadu (a oba myslím mají alternativní verzi bez Javascriptu). Honza 2008/6/22 [EMAIL PROTECTED]: Se seznam.cz problémy nemám a nikdy jsem neměl, seznam.cz my naprosto vyhovuje narozdíl od Javascriptového gmailu... ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] pspad kompilace
Tak o existenci property jsem neměl tušení. Nyní souhlasím, že set/get metody nemají v Pythonu co dělat. Díky za rozšíření znalostí. Honza Dne 21. červen 2008 9:55 superman [EMAIL PROTECTED] napsal(a): Děkuji náčelníku, že jsi se mě zastal :-) Já osobně si myslím, že get/set metody v Pythonu je absolutní pitomost, a že to tak krásný a schopný jazyk, jakým Python je opravdu nemá zapotřebí. Nevidím jedinou výhodu používání get/set metod v Pythonu - ani jedinou, kromě toho že správný Javista bude psát v každém jazyce jako v Javě (parodie na Fortranista bude psát v každém jazyce jako ve Fortranu). Osobně si myslím, že get/set metody je javovina, kde v Javě je bohužel nutné díky strašné neschopnosti syntaxe Javy používat lecjakou obezličku, ale je to z nouze ctnost. Miloslav Ponkrác rajcze napsal(a): Pokud mluvime o Pythonu, tak v něm je pozdější přepisování zdrojáků na gettery/settery přece ůplně jednoduché. Pokud se třeba v příkladu s opičkou z nějakého děsivého důvodu rozhodnu, že chci atribut nick změnit na slovník, který obsahuje dva prvky - jméno a příjmení. Stačí změnit atribut na property například takto: Výchozí stav: class Opicka: def __init__(self): self._nick = def magic_function(self): self.nick = self.nick.upper() Konečný stav: class Opicka: def __init__(self): self._nick = {jmeno:, prijmeni:} def magic_function(self): self.nick = self.nick.upper() def set_nick(self, value): value = value.split() self._nick[jmeno] = self._nick[prijmeni] = if len(value) == 1: self._nick[jmeno] = value[0] else: self._nick[jmeno] = value[0] self._nick[prijmeni] = ' '.join(value[1:]) def get_nick(self): return(%s %s % (self._nick['jmeno'], self._nick[prijmeni])) nick = property(get_nick, set_nick) a = Opicka() a.nick = Pepa z Depa a.nick = a.nick + prvni print a.nick a.magic_function() print a.nick Je mi jasné, že tento příklad je docela nerealistický, ale pro demonstraci funkcionality IMHO vyhovuje. Joza 2008/6/21 Jan Bednařík [EMAIL PROTECTED]: Souhlasím, v tomto případě jsou ty metody zbytečné. Ale v praxi často mají nějakou funkčnost navíc, jako třeba ověření/ošetření vstupních hodnot, přeformátování výstupních hodnot, vliv na další atributy třídy, logování, apod. To se bez set/get metod neobejde a když se nepoužívají už z principu i pro to jednoduché přiřazení nebo navrácení hodnoty atributu, pozdější přepisování zdrojáků není zrovna nejzábavnější. Honza ___ 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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] pspad kompilace
Dne 20. červen 2008 14:42 Jakub [EMAIL PROTECTED] napsal(a): Já to mám z toho Kurzu Pythonu na programujte.com, takže předpokládám, že když to tam je, tak je to snad pro začátečníka dobré. Jestli ne tak t o je blbé :-) Úplně dobré to není, správně by ta třída měla vypadat asi takto: class Opicka: def __init__(self): self.nick = def setNick(self, nick): self.nick = nick def getNick(self): return self.nick a příklad použití: orangutan = Opicka() orangutan.setNick(Tonda) print orangutan.getNick() Honza ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Brainstorm request: Vyuka programovani na gymplu
Koukni na http://www.freenetpages.co.uk/hp/alan.gauld/czech/ Honza Dne 3. červen 2008 21:07 Vlada Macek [EMAIL PROTECTED] napsal(a): Teoreticka situace: Vyuka predmetu s nazvem Programovani na soukr. 8letem gymplu, 10 pry narocnych kluku z pokrocilych rocniku, volitelny predmet (takze oni se to chteji ucit). Osnova neni v podstate omezena a pri jejim sestavovani se bere v potaz, co by se studenti chteli naucit. 2 vyucovaci hodiny tydne po dobu 1 skolniho roku. Co byste do osnovy urcite zaradili? A co krome toho urcite? Dik za napady, -- \//\/\ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Editor pro nevidome.
Dobý den, pro všechny zájemce o tuto problematiku doporučuji web http://www.pristupnost.cz zvláště sekci o zařízeních pro hendikepované uživatele http://www.pristupnost.cz/zarizeni/ Jan Bednařík Dne 3. červen 2008 14:23 zu1234 [EMAIL PROTECTED] napsal(a): Word by asi nebyla moc vhodná volba - je určen na něco jiného. Můžete naznačit jak ovládáte ten notepad neboli poznámkový blok? Vidíte alespoň něco? Neumím si představit jak to děláte. ZU ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Editor pro nevidome.
Ahoj Jarku, Na PSPad nebo nějaké IDE, jak tu kdosi radil se vykašli. Poznámkový blok je dobrá volba. Být tebou, zkusil bych editor VIM, myslím že existuje verze pro Windows zvaná GVIM http://www.vim.org/download.php#pc VIM pochází z operačního systému UNIX, který má/měl jen textové rozhraní. Díky tomu je VIM dokonale ovladatelný pomocí klávesových zkratek a textových příkazů, což je pro tebe myslím ideální (je to extrémně efektivní i pro lidi co normálně vidí). Koukni na http://www.kit.vslib.cz/~satrapa/docs/vim/ je tam celkem pěkně popsaný návod, jak se s editorem VIM naučit zacházet. Jan Bednařík Dne 3. červen 2008 15:02 Jarek Krcmar [EMAIL PROTECTED] napsal(a): Vážený pane Koumesi a ostatní uživatelé editoru PSPAD, Mohli byste mi prosím popsat, jak se tento editor používá? Zatím se mi podařilo zjistit, že se v tomto programu nachází Notepad.exe. Jsem toho názoru, že jakmile bych spustil Notepad, začal bych psát v poznámkovém bloku. Navíc - jestliže si chci otevřít program s příponou py. mohu si jej otevřít jen v poznámkovém bloku. Jarek - Original Message - From: Koumes21 To: Konference PyCZ Sent: Tuesday, June 03, 2008 2:33 PM Subject: Re: [python] Editor pro nevidome. Dobrý den, kdysi jsem viděl, že nevidomí používají PSPad a to i na normální čtení textových souborů. Já sám tento editor používám na programování, takže si myslím, že by to mohla být ta pravá volba. PSPad je možné najít na stránkách http://www.pspad.com/ Koumes21 3.6.08, zu1234 [EMAIL PROTECTED]: Word by asi nebyla moc vhodná volba - je určen na něco jiného. Můžete naznačit jak ovládáte ten notepad neboli poznámkový blok? Vidíte alespoň něco? Neumím si představit jak to děláte. ZU ___ 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 ___ 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