Re: [python] Překlady programů
Ta funkce se speciálním názvem "_" a odpovídající wx.GetTranslation jsou právě obalem nad gettext. Ve svých zdrojácích (jak je v té dokumentaci naznačeno) pak místo: aString = u"This is a string which will be translated" píšeš aString = _(u"This is a string which will be translated") Jde o to, že externí nástroje reagují na výskyt _("xxx") ve zdrojovém textu a vykousnou to do toho zdrojového tvaru pro poedit. Při běhu funkce _() použije původní řetězec jako klíč a v databázi najde odpovídající překlad. Takže to xxx může být i v symbolickém jazyce. Pro každý jazyk bez výjimky pak definuješ překlad. Pokud se ale předělává existující projekt, tak se prostě všechny řetězcové literály obalí tou funkcí (raději ne úplně mechanicky), pustí se na to extraktor, použije se poedit, a je to... (skoro :) V Pythonu (verze 3) jsem nezkoušel, zda lze _(u"") nahradit pythonštějším _('') -- tj. bez u a s apostrofy místo uvozovek. Z hlediska Pythonu je to stejné, ale musí se chytat ten extraktor, který zpracovává zdrojové texty a připravuje podklady pro poedit. Petr __ Od: "Ctibor.Plasek"Komu: "Konference PyCZ" Datum: 05.12.2017 13:49 Předmět: Re: [python] Překlady programů Ještě jednou díky oběma.To Petr - jj. Našel jsem si ty překlady u pyscripteru a přesně tohle mne mátlo... :-)A web nedělám. Bavím se s wxpythonem a tam je jenom toto:https://wxpython.org/Phoenix/docs/html/internationalization.html Ale vy jste mne alespoň správně nasměrovali.Takže ještě jednou díky.Ctibor -- Původní e-mail -- Od: Ondrej Tuma Komu: python@py.cz Datum: 5. 12. 2017 13:35:32 Předmět: Re: [python] Překlady programů Hoj, no tak to opravdu není. Ten princip je jednoduchý, a doporučuji si o gettextu něco napsat. Žádný hezký český zdroj mě ale nenapadá. Anglický asi nejlépe: https://www.gnu.org/software/gettext/manual/gettext.html Ve zkratce je postup následující: v kódu, kde se má doplnit překlad se použije funkce gettext, případně alias podtržítko (_): from gettext import gettext print(gettext("Hello world")) Následně se pomocí nástrojů gettextu vygeneruje pot soubor: xgettext -o aplikace.pot --language=python Z něj se pak různým způsobem dá vytvořit soubor s překlady, nejlépe pak: msginit -l cs (pro český jazyk) výsledný soubor cs.po se edituje v jednom z nástrojů, jenž jsem psal a nakonec se vygeneruje binární katalog: msgfmt -o cs/LC_MESSAGES/aplikace.mo cs.po V kódu je pak třeba definovat jak se katalog jmenuje (název katalogu bez přípony). from gettext import bindtextdomain bindtextdomain('aplikace', localedir='/usr/share/locale') V případě, že používáš webovou aplikaci a šablony (jinja2) pak je třeba vytvořit objekt translation, ten se pak předává při generování výstupu. from gettext import translation translations = translation('aplikace', localedir="/usr/share/locale", languages=[cs, sk], fallback=True) env = Environment(loader=FileSystemLoader(path), undefined=MissingUndefined, extensions=['jinja2.ext.i18n']) env.install_gettext_translations(translations) template = env.get_template("sablona.html") localedir je cesta k adresari, ve kterem jsou adresare s jazyky, v nich LC_MESSAGES a v nich aplikace.mo Příklady sem nezkoušel, tak snad sem je napsal správně. Pak to funguje tak, že gettext natáhne katalogy, dle nastavených jazyků do paměti a podle toho, jestli najde string v příslušném jazykovém katalogu přeložený (postupně zkouší všechny jazyky), vrátí přeložený string. Asi o tom zase napíšu článek, ať se pořádně znemožním :-) Ondra V Tue, 05 Dec 2017 11:21:26 +0100 (CET) "Ctibor.Plasek" napsáno: Ahoj. Díky moc za rady - teda spíš za nasměrování :-) Konečně vím, co mám hledat... Sice to zatím moc nechápu (zdá se mi, že se odkazuje na určitý přesný řádek v kódu, což by asi bylo nešťastné při jakémkoliv doplňování - takže to nakonec asi nebude pravda) Ctibor -- Původní e-mail -- Od: Ondrej Tuma Komu: python@py.cz Datum: 23. 11. 2017 8:09:17 Předmět: Re: [python] Překlady programů "Hoj, GTK+ používá gettext také. V Pythonu používám přímo gettext modul: https://docs.python.org/3/library/gettext.html?highlight=gettext#module- gettext Narozdíl od klasické C knihovny, se s ním pracuje o něco lépe a pohodlněji. Mezi ty nejznámější programy na správu překladů patří poedit https://poedit.net/. A rozhodně zajímavým Michalovým počinem je Weblate https://weblate.org/. Zatím mám u něj jeden free software a to teprve pár dní, takže zkušenosti nemám, Ondra V Thu, 23 Nov 2017 01:15:47 +0100 Petr Messner napsáno: > Ahoj, > > gettext je standard. Zkus se podívat na tyto odkazy - pokud neděláš > web, tak si ty webové věci od toho odmysli :) > > -
Re: [python] GUI ala PC-FAND
Ahoj fšeci, Co se týká command line vs. GUI (a přenositelnosti), asi bych volil spíš GUI kvůli češtině a kódování. Co se týká desktop vs. web, pak web by se měl používat, jen když chci webovou aplikaci. V opačném případě to bude škrábání za uchem přes hlavu. A z GUI toolkitů tu zatím nikdo nezmiňoval wxPython. ;) Mějte se fajn, Petr __ > Od: Ales Zoulek> Komu: Konference PyCZ > Datum: 14.11.2017 22:13 > Předmět: Re: [python] GUI ala PC-FAND > Ahoj, Vyhoda weboveho reseni je, ze do web GUI toolkitu bylo investovano nekolika nasobne vic vyvoje a energie nez do GTK a Qt a je to na pohodlnosti vyvoje i vysledneho vzhledu znat. Pricemz urcite neztratis vyhody prenositelnosti a jeste se naucis veci, ktery se ti spis budou hodit jinde. Ja bych asi sahnul po flasku/djangu a sqlite. Frontend framework ti jini urcite doporuci dobre... Ales Dne út 14. 11. 2017 17:00 uživatel Matěj Cepl napsal:On 2017-11-14, 15:17 GMT, Matěj Cepl wrote: > On 2017-11-13, 20:21 GMT, Ondrej Tuma wrote: >> Důvody pro "znovu-vynalézání kola", nechme prosím >> stranou, berte to jako příležitost rozšířit znalosti. > > Závidím Vám, že máte přebytek času, takže ho můžete promarnit na > projekt, který nemá zcela jistě žádnou budoucnost. Kdybyste > přece jenom náhodou chtěl dělat na něčem co má smysl, tak bych > si dovolil doporučit http://ledger-cli.org/ resp. > http://webaccountant.sourceforge.net/index.shtml , což je > command line účetní program, ke kterému existují různé frontendy > (třeba tenhle webový). Udělání Pythonního frontendu by Vám mohlo > uspořit spoustu práce na nejtěžším, správně udělaných účetních > operacích. Zdá se, že ledger má dokonce Pythonovské bindings (alespoň ve Fedoře je balíček ledger-python). Matěj -- http://matej.ceplovi.cz/blog/, Jabber: mceplceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 Find the dependencies -- and eliminate them. -- according to http://is.gd/oeYpcI the motto of the MS Excel team ___ 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] alternativa textwrap.fill(), která by zarovnávala po česku?
Modul textwrap je psaný v Pythonu a nemá to ani 300 řádků (i s rozsáhlými docstringy). Přepište si to po svém, případně přidejte nějaký parametr typu "množina slov, která nemají zůstat na konci". A pokud to bude šikovné, pošlete to jako námět na vylepšení oficiálního textwrap. Přeji krásný den, Petr __ > Od: Matěj Cepl> Komu: python@py.cz > Datum: 11.05.2017 01:12 > Předmět: Re: [python] alternativa textwrap.fill(), kter > >On 2017-05-10, 22:28 GMT, Vláďa Macek wrote: >> print textwrap.fill(instr, width=65).replace(u'~', >> unichr(160)) > >No, udělal jsem v podstatě to: > >diff --git a/reflow.py b/reflow.py >index 22b08cf..757077c 100644 >--- a/reflow.py >+++ b/reflow.py >@@ -133,12 +133,18 @@ class ReflowPluginWindowActivatable(GObject.Object, > Gedit.WindowActivatable): > if isinstance(text, str): > text = unicode(text, 'utf8') > >+# we don't want to break on the non-breaking space >+# FIXME not sure whether there isn’t better replacement character >+text = text.replace(unichr(0xA0), '~') >+ > text = textwrap.fill(text, > width=self.get_gedit_margin(), > initial_indent=first_prefix, > subsequent_indent=prefix, > break_on_hyphens=False, > drop_whitespace=True) >+text = text.replace('~', unichr(0xA0)) >+ > return text > > def _get_line(self, index): > >Ale nejsem na to hrdej. Navíc přemýšlím, jestli někdy nebudu >chtít mít ~ znak v textu. Ale snad ne. > >Hezký den, > >Matěj > >-- >https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz >GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 > >Of course I'm respectable. I'm old. Politicians, ugly buildings, >and whores all get respectable if they last long enough. > --John Huston in "Chinatown." >___ >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 :-)
Chlapi, co jste pili? S džusem, nebo jen tak? :) Ale nevidíte v tom žádnou záhadu, že ne? ;) Přidám tohle... >>> m = set() >>> m set() >>> m.add('a') >>> m {'a'} >>> m.add(2) >>> m {2, 'a'} >>> m.add(1) >>> m {1, 2, 'a'} >>> m.add(True) >>> m {1, 2, 'a'} >>> m.add(1.0) >>> m {1, 2, 'a'} >>> m.add(False) >>> m {False, 1, 2, 'a'} >>> m.add(0) >>> m {False, 1, 2, 'a'} >>> m.add(0.0) >>> m {False, 1, 2, 'a'} Mějte se fajn, Petr __ > Od: Pavel Schön> Komu: python@py.cz > Datum: 11.05.2015 12:46 > Předmět: Re: [python] Pulnocni rozjimani :-) > >$ python >Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32) >[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 a = 256 b = 256 a is b >True a = 257 b = 257 a is b >False > > >On Sunday, May 10, 2015 at 1:05:58 AM UTC+2, Vladimir Macek wrote: >> Just having fun. >> >> $ python >> >>> a = {} >> >>> b = {'a': a} >> >>> a['b'] = b >> >>> a >> {'b': {'a': {...}}} >> >>> b >> {'a': {'b': {...}}} >> >>> import cPickle >> >>> ap = cPickle.dumps(a) >> >>> del a, b >> >>> len(ap) >> 26 >> >>> a = cPickle.loads(ap) >> >>> a >> {'b': {'a': {...}}} >> >>> a['b'] >> {'a': {'b': {...}}} >> >>> a['b']['a'] >> {'b': {'a': {...}}} >> >>> a['b']['a']['b'] >> {'a': {'b': {...}}} >> >>> >> >> Navaze nekdo? :-) >> >> V. >> >> >> --- news://freenews.netfront.net/ - complaints: n...@netfront.net --- > >___ >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] Používání proměnných (formátovací řetězec)
Ahoj všeci, Jen doplním... Od Pythonu 3.2 lze pro pojmenované věci ve složenkách používat metodu format_map, kde jméno se bere jako klíč a dosadí se hodnota. V Python 3.6 se objevila možnost, která se mi původně zdála zbytečná, ale ukázala se jako docela fajn. Pokud var a log jsou proměnné, pak lze přímo psát f'{var}/{log}' ... a je to. V kombinaci s format_map a format (podle toho, kde co mám), je to docela fajn novinka. Mějte se fajn, Petr __ > Od: Petr Messner> Komu: Konference PyCZ > Datum: 03.04.2017 11:11 > Předmět: Re: [python] Používání proměnných > >Dne 3. dubna 2017 10:36 Ondrej Tuma napsal(a): > >> U format se mi líbí zejména používání názvů: >> >> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >> >> >Proč tak složitě? :) '{var}/{log}'.format(log='mujlog', var='/var/log') > >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] Na vsetko cyklus for ?
Roman Miklos napsal(a): Povodne je for-cyklus v Pythone cyklus iterujuci cez zoznam, t.j. analogia cyklu foreach v Perle. Preto sa mi predsa len spaja ten for aj pri citani suboru vzdy so zoznamom. Nedavno bolo este typicky pytonovske toto Cyklus for je ale obecnější. Neslouží pouze pro průchod řádky seznamu. Slouží pro průchod všemi prvky kontejneru. Nikdy nesloužil pouze pro průchod seznamem. Vždycky sloužil minimálně pro průchod sekvencí. Dávno sloužil i pro průchod položkami slovníku. Vše to spěje k zobecnění -- průchod jakýmkoliv iterovatelným kontejnerem. lines=f.readlines() for line in lines: ... teda najprv sa nacital cely subor do zoznamu a potom sa prechadzal riadok po riadku. Toto moze byt pri niektorych ulohach vhodne, avsak vseobecne je to blbost. Proto byla zavedena metoda xreadlines(), která realizuje iteraci přes řádky souboru. Ked neskor teda bolo napriklad zavedene toto for line in file("data.txt"): ... t.j. tento cyklus cita riadok po riadku, je to zasa len odchylka oproti povodnemu cyklu for (ktory iteroval cez zoznam), takze zaciatocnik v Pythone si musi pamatat rozne vynimky typu: "for iteruje cez zoznam, ale 'for line in file("data.txt")' cita subor po riadkoch" /inac by si mohol mysliet, ze file("data.txt") vracia zoznam, co nie je pravda, lebo je to ekvivalentne s open("data.txt")/ Není. Otevřený textový soubor se typicky chápe jako posloupnost řádků, kde každý řádek je řetězec. Takze ked to zhrnieme mame teraz takuto situaciu: # cita subor po riadkoch for line in file('data.txt'): ... # vrati naprv zoznam riadkov a iteruje cez tento zoznam for line in file('data.txt').readlines(): ... Myslim si, ze citat subor po riadkoch alebo najprv vsetky riadky nacitat do zoznamu a potom ho prechadzat je dost velky rozdiel. A ked sa obe tieto veci robia cez for .. zavadza to zbytocny zmatok, nie? V tom druhém, případě se ale neprochází soubor. Prochází se seznam řetězců! Podla mna by bolo ovela jasnejsie zaviest na citanie po riadkoch: while line = f.readline(): ... To jde v Pythonu odjakživa line = 'init' while line != '': # nebo taky while line: line = f.readline() zpracuj(line) pepr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] file.next() (bylo Buducnost Pythonu: lambda, map, filter)
radek napsal(a): > Avšak souhlasím s názorem, že soubory se čtou > většinou po řádcích takže je > to takto praktické ale mám z toho pocit vyjímky která se mi nelíbí. Problém je v tom, že zadrátovat do jazyka konstrukci, která ušetří několik písmenek je sice praktické, ale nedobré. Nechť je prostě všechni vidět. Pokud se soubory mohou číst i jinak, než po řádcích, což se děje velmi často, tak bych tyto zjednodušující konstrukce do jazyka vůbec nedával. Presne tak, priklady, jak by to vypadalo jinak: #cteni po radcich s defaultnim line oddelovacem (jak je ted) for line in file("data.txt").lines(): ... #cteni po radcich, ktere jsou oddelene oddelovacem for line in file("data.txt").lines(""): [...] Ale definice, že řádek v textovém souboru je ukončen jaksi není obecně přijímaná. Když chci, musím si to napsat sám a nebo použít odpovídající parser. Jan Matějka Ono obecnější řešení je udělat parsovací generátory, které by šly použít s čímkoliv file-like jako vstupním prametrem, a nestrkat parsování to objektu file. Tedy: [...] for line in lines(file("data.txt")): ... [...] atd. Výpočetní náročnost by zústala stejná. Generátory mi přijdou jako skvělý nástroj, škoda že se GvR brání zobecnění do více úrovní zanoření jenž nabízí stackless python. Ale vdyť mi nic nebrání zpracovávat soubor po znacích. # Vygenerujeme si testovaci textovy soubor. f = open('test.txt', 'w') for i in xrange(3): f.write('Line %d.\n' % i) f.close() # Pruchod po znacich. f = open('test.txt') c = 'init' while c != '': c = f.read(1) print c f.close() A nic mi nebrání napsat generátor, který vezme a bude vracet znaky a použít ho: def chargen(f): c = 'init' while c != '': c = f.read(1) yield c for c in chargen(file('test.txt')): print c A můžu si napsat jakýkoliv jiný generátor/parser. pepr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] OT: Coding style
Já jsem si říkal, že už jsem to někde viděl. Používáte pořád wxPython pro Python 2, nebo už zkoušíte verzi pro Python 3? (Phoenix). Co se týká poznámek k ternárnímu operátoru. Byl do Pythonu zaveden později, ale zjevně ne bezdůvodně, takže k výrokům typu "zplozenec pekla" se nepřikláním. ;) A co se týká velkého počátečního písmene pro metody -- konvence jsou různé a wxPython je obal wxWidgets (C++). Rozhodně je lepší ponechat stejné názvy z C++. Kompromisy jsou všude. Petr __ > Od: Petr Blahos> Komu: Konference PyCZ > Datum: 27.11.2015 11:51 > Předmět: Re: [python] Coding style > >Děkuju všem za tipy. Já to vpodstatě vidím stejně (kromě negativních názorů >na ternární >operátor, inu C je mi pořád nejbližší). evt je event ve frameworku wx, >evt.Skip() znamená, >že se bude event dál zpracovávat. Velký písmeno je tam proto, že ten >framework holt má >velký písmena :-) > >-- >Petr > > > >2015-11-26 20:10 GMT+01:00 Jan Bednařík : > >> 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 >> > > >-- > >___ >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] OT: tykání
>(Neměli jsme tady konvenci, že si tykáme?) Na konvence kašlu :)) Existuje spousta drobností, které rozbíjejí kulturu příliš rychlými změnami. Berte to jako mou rebelii vůči anglosaskému vlivu. Petr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Coding style
Jednoznačně první, protože to druhé je výraz, který by měl být používán pro svou hodnotu a ne pro svůj vedlejší efekt. První varianta je srozumitelná i pro lidi, kteří nikdy ternární operátor v Pythonu neviděli. "else None" v druhé variantě je jen matoucí. Další otázka je, co to je evt a jaký je důvod, že nabývá hodnoty None nebo nějaké jiné, která se v boolovském kontextu vyhodnotí jako false. Možná by okolí mělo být napsáno nějak jinak. (Tj. jak se evt získává.) Pokud by byl často potřebný "prázdný" objekt evt, pak by možná stálo za to vyrobit pro něj speciální třídu, která implementuje prázdnou metodu .Skip() a počáteční test by se vynechával. Petr __ > Od: Petr Blahos> Komu: Konference PyCZ > Datum: 26.11.2015 08:26 > Předmět: [python] Coding style > >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
[python] Chyba v distribuci Pythonu?
Ahoj všeci, Můžete někdo potvrdit, jestli vám to taky funguje blbě? Spouštěl jsem to pod Windows. Pod Linuxem to bude nejspíš bez problémů. tzname_bug.py = #!python3 import time import sys with open('tzname_bug.txt', 'w', encoding='utf-8') as f: f.write(sys.version + '\n') f.write('Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas)\n') f.write('but it is: ' + time.tzname[0] + ' | ' + time.tzname[1] + '\n') f.write('types: ' + repr(type(time.tzname[0])) + ' | ' + repr(type(time.tzname[1])) + '\n') = Vygeneruje to tzname_bug.txt. Mail asi nebude schopen zachytit problém s kódováním. Připomínám, že je to Python 3 a všechny řetězce mají být v UNICODE. = 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) types: | = Stejně blbě pro verzi 3.5 = 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) types: | = Přeju pěkný víkend, Petr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Chyba v distribuci Pythonu?
:) Nelaškuj. Jde o to, že ten český text je v time.tzname blbě převeden do UNICODE. >> = >> 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit >> (Intel)] >> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >> types: | >> = Žádný string by neměl v Python 3 vypadat takhle blbě. P. __ > Od: Vladimir Macek <ma...@sandbox.cz> > Komu: Konference PyCZ <python@py.cz> > Datum: 18.09.2015 16:29 > Předmět: Re: [python] Chyba v distribuci Pythonu? > >Ahoj. Pridavam se do databaze. :-) > >$ cat tzname_bug.txt >3.4.0 (default, Jun 19 2015, 14:18:46) >[GCC 4.8.2] >Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >but it is: CET | CEST >types: | > >$ lsb_release -a >LSB Version:... >Distributor ID:Ubuntu >Description:Ubuntu 14.04.3 LTS >Release:14.04 >Codename:trusty > >$ uname -a >Linux ... 3.13.0-62-generic #102-Ubuntu SMP Tue Aug 11 14:28:35 UTC 2015 >i686 i686 i686 GNU/Linux > >$ set | grep ^L >LANG=en_US.UTF-8 >LANGUAGE=en >... > > >On 18.9.2015 16:19, Petr Přikryl wrote: >> Ahoj všeci, >> >> Můžete někdo potvrdit, jestli vám to taky funguje blbě? Spouštěl jsem to >> pod Windows. Pod Linuxem to bude nejspíš bez problémů. >> >> tzname_bug.py >> = >> #!python3 >> import time >> import sys >> with open('tzname_bug.txt', 'w', encoding='utf-8') as f: >> f.write(sys.version + '\n') >> f.write('Should be: Střední Evropa (běžný čas) | Střední Evropa (letní >> čas)\n') >> f.write('but it is: ' + time.tzname[0] + ' | ' + time.tzname[1] + '\n') >> f.write('types: ' + repr(type(time.tzname[0])) + ' | ' + >> repr(type(time.tzname[1])) + '\n') >> = >> >> Vygeneruje to tzname_bug.txt. Mail asi nebude schopen >> zachytit problém s kódováním. Připomínám, že je to Python 3 >> a všechny řetězce mají být v UNICODE. >> = >> 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit >> (Intel)] >> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >> types: | >> = >> >> Stejně blbě pro verzi 3.5 >> = >> 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit >> (AMD64)] >> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >> types: | >> = >> >> >> Přeju pěkný víkend, >> Petr >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz > > >-- >: Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164 >: UNIX && Dev || Training : Python, Django : PGP key 97330EBD >: >: Velmi souhlasim s http://www.vyzvavedcu.cz/, zvazte take podporu > >___ >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] Chyba v distribuci Pythonu?
Je. Jde to poznat taky podle toho, že f.write() ten text so souboru přes UTF-8 kódování zapsal správně. V https://bugs.python.org/ už jsem našel asi něco podobného čínsky -- https://bugs.python.org/issue16322 Asi to není dořešené už od té doby. P. __ > Od: "Honza Král" <honza.k...@gmail.com> > Komu: Konference PyCZ <python@py.cz> > Datum: 18.09.2015 19:02 > Předmět: Re: [python] Chyba v distribuci Pythonu? > >a je ten .py soubor skutecne v kodovani utf-8? >Honza Král >E-Mail: honza.k...@gmail.com >Phone: +420 606 678585 > > >2015-09-18 18:55 GMT+02:00 Petr Přikryl <prik...@atlas.cz>: >> :) Nelaškuj. Jde o to, že ten český text je v time.tzname blbě převeden do >> UNICODE. >> >>>> = >>>> 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit >>>> (Intel)] >>>> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >>>> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >>>> types: | >>>> = >> >> Žádný string by neměl v Python 3 vypadat takhle blbě. >> >> P. >> >> __ >>> Od: Vladimir Macek <ma...@sandbox.cz> >>> Komu: Konference PyCZ <python@py.cz> >>> Datum: 18.09.2015 16:29 >>> Předmět: Re: [python] Chyba v distribuci Pythonu? >>> >>>Ahoj. Pridavam se do databaze. :-) >>> >>>$ cat tzname_bug.txt >>>3.4.0 (default, Jun 19 2015, 14:18:46) >>>[GCC 4.8.2] >>>Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >>>but it is: CET | CEST >>>types: | >>> >>>$ lsb_release -a >>>LSB Version:... >>>Distributor ID:Ubuntu >>>Description:Ubuntu 14.04.3 LTS >>>Release:14.04 >>>Codename:trusty >>> >>>$ uname -a >>>Linux ... 3.13.0-62-generic #102-Ubuntu SMP Tue Aug 11 14:28:35 UTC 2015 >>>i686 i686 i686 GNU/Linux >>> >>>$ set | grep ^L >>>LANG=en_US.UTF-8 >>>LANGUAGE=en >>>... >>> >>> >>>On 18.9.2015 16:19, Petr Přikryl wrote: >>>> Ahoj všeci, >>>> >>>> Můžete někdo potvrdit, jestli vám to taky funguje blbě? Spouštěl jsem to >>>> pod Windows. Pod Linuxem to bude nejspíš bez problémů. >>>> >>>> tzname_bug.py >>>> = >>>> #!python3 >>>> import time >>>> import sys >>>> with open('tzname_bug.txt', 'w', encoding='utf-8') as f: >>>> f.write(sys.version + '\n') >>>> f.write('Should be: Střední Evropa (běžný čas) | Střední Evropa (letní >>>> čas)\n') >>>> f.write('but it is: ' + time.tzname[0] + ' | ' + time.tzname[1] + '\n') >>>> f.write('types: ' + repr(type(time.tzname[0])) + ' | ' + >>>> repr(type(time.tzname[1])) + '\n') >>>> = >>>> >>>> Vygeneruje to tzname_bug.txt. Mail asi nebude schopen >>>> zachytit problém s kódováním. Připomínám, že je to Python 3 >>>> a všechny řetězce mají být v UNICODE. >>>> = >>>> 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit >>>> (Intel)] >>>> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >>>> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >>>> types: | >>>> = >>>> >>>> Stejně blbě pro verzi 3.5 >>>> = >>>> 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit >>>> (AMD64)] >>>> Should be: Střední Evropa (běžný čas) | Střední Evropa (letní čas) >>>> but it is: Støední Evropa (bìný èas) | Støední Evropa (letní èas) >>>> types: | >>>> = >>>> >>>> >>>> Přeju pěkný víkend, >>>> Petr >>>> ___ >>>> Python mailing list >>>> python@py.cz >>>> http://www.py.cz/mailman/listinfo/python >>>> >>>> Visit: http://www.py.cz >>> >>> >>>-- >>>: Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164 >>>: UNIX && Dev || Training : Python, Django : PGP key 97330EBD >>>: >>>: Velmi souhlasim s http://www.vyzvavedcu.cz/, zvazte take podporu >>> >>>___ >>>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] Používá někdo AsciiDoc?
Ahoj Petře a Danieli, Už jsem to rozjel. Mrkněte na https://github.com/asciidoc/asciidoc/issues/83#issuecomment-140990953, kde se zatím vede neformální diskuse -- elextr je asi jeden z těch, kdo může dělat pull. Vyrobil jsem fork https://github.com/pepr/asciidoc a větev py3dev. Pracovně se nové programy jmenují asciidoc3.py, asciidocapi3.py... Pak se s tím něco udělá. Podle mého názoru se to nejdříve musí rozjet "nějak", aby to fungovalo jako ta verze pro Python 2. Nejsem stoupencem přístupu "musí se to navrhnout celé znovu". Víc příkladů ukazuje, že tato cesta vede do nikam (viz webový prohlížeč, který už ani nevím jak se jmenoval... Netscape?). Mrknu na Danielův příspěvek https://github.com/Dundee/asciidoc/tree/python3 Navrhuji, abyste se zapojili (když budete chtít) přes ten horní odkaz "issues". Tam se domluvíme na plánu. Nemá smysl tříštit síly. A chtělo by to dohodnout, jakou formou a kde bude probíhat "oficiální" diskuse -- žádné velké formality, ale aby všichni věděli, kde to mají sledovat. Nejspíš bude více vláken diskuse (namátkou: jak to propojit s původním asciidoc, jak to předělávat, budoucí struktura, vztah k definici syntaxe, spolupráce s týmem AsciiDoctor [Ruby], Linux vs. Windows a další). Jsem v AsciiDoc nováček a dělám většinou pod Windows (kvůli tomu, co dělám v práci). Zkrátka, chce to dát hlavy dohromady. (Kdo má děcka školou povinná, tak ví, že to v dnešní době není vždy dobrý nápad -- vši, zvláště po prázdninových táborech. Ale ode mě vám nebezpečí nehrozí, bo vši nemají brusle ;) Mějte se fajn, Petr __ > Od: Petr Viktorin <encu...@gmail.com> > Komu: Konference PyCZ <python@py.cz>, "Petr Přikryl" <prik...@atlas.cz> > Datum: 17.09.2015 12:30 > Předmět: Re: [python] Používá někdo AsciiDoc? > >2015-09-15 23:50 GMT+02:00 Petr Přikryl <prik...@atlas.cz>: >> Jo. No právě. Vývoj není aktivní, ale vypadá to, že se dosavadní verze >> aktivně používá. >[...] >> >> Ta implementace asciidoc.py má kolem 6200 řádků, v podstatě v jednom >> souboru. Ale samotnému se mi do toho nechce. > >To vypadá jako dobrý nápad na sprint pycon.cz :) > >> Chce se do toho někomu? > >Docela bych na to chtěl mít čas :( > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Fork AsciiDoc pro port do Python 3 najdete...
Petře, dík za informaci. >Jak to většinou dělám já: napřed použít modernize (pip install >modernize), který se snaží kót změnit aby byl kompatibilní s py2.6+ i >py3 (pomocí knihovny six). Věwtšinou se to nepovede úplně, tak je pak >potřeba projet testy a dodělat detaily (hlavně rozhodnout co je bytes >a co unicode). Čili ne napřed py3 branch a pak to spojit, ale spíš >přidat py3 kompatibilitu navíc do existujícího kódu. >Když máš projekt v Gitu, chceš použít `modernize -wn .`, aby soubory >přepsal a nedělal zálohy. Ještě se k tomu vrátím. elextr z originálního týmu doporučil přesunout vývoj i komunikaci do forku. Zvolil jsem název větve py3dev. Takže zatím berte jako oficiální místo https://github.com/pepr/asciidoc/tree/py3dev Diskusi povedeme všichni v https://github.com/pepr/asciidoc/issues (ono se to postupně vystříbří, ale pište tam aglicky, pokud možno). Zatím to budu řešit přes pull request a merge, postupně tam podle dohody přidám další lidi, aby to neviselo na mé přítomnosti. Mějte se fajn, Petr __ > Od: Petr Viktorin >2015-09-17 13:38 GMT+02:00 Petr Přikryl >> Ahoj Petře a Danieli, >> >> Už jsem to rozjel. Mrkněte na >> >> https://github.com/asciidoc/asciidoc/issues/83#issuecomment-140990953, >> >> kde se zatím vede neformální diskuse -- elextr je asi jeden z těch, kdo může >> dělat pull. >> >> Vyrobil jsem fork https://github.com/pepr/asciidoc a větev py3dev. >> Pracovně se nové programy jmenují asciidoc3.py, asciidocapi3.py... >> Pak se s tím něco udělá. Podle mého názoru se to nejdříve musí >> rozjet "nějak", aby to fungovalo jako ta verze pro Python 2. Nejsem >> stoupencem přístupu "musí se to navrhnout celé znovu". Víc příkladů >> ukazuje, že tato cesta vede do nikam (viz webový prohlížeč, který >> už ani nevím jak se jmenoval... Netscape?). > > >> Mrknu na Danielův příspěvek https://github.com/Dundee/asciidoc/tree/python3 >> >> Navrhuji, abyste se zapojili (když budete chtít) přes ten horní odkaz >> "issues". >> Tam se domluvíme na plánu. Nemá smysl tříštit síly. A chtělo by to dohodnout, >> jakou formou a kde bude probíhat "oficiální" diskuse -- žádné velké >> formality, >> ale aby všichni věděli, kde to mají sledovat. > >Jak říkám, chtěl bych na to mít čas :( > >> Nejspíš bude více vláken diskuse (namátkou: jak to propojit s původním >> asciidoc, >> jak to předělávat, budoucí struktura, vztah k definici syntaxe, spolupráce s >> týmem >> AsciiDoctor [Ruby], Linux vs. Windows a další). >> >> Jsem v AsciiDoc nováček a dělám většinou pod Windows (kvůli tomu, co dělám >> v práci). Zkrátka, chce to dát hlavy dohromady. (Kdo má děcka školou povinná, >> tak ví, že to v dnešní době není vždy dobrý nápad -- vši, zvláště po >> prázdninových >> táborech. Ale ode mě vám nebezpečí nehrozí, bo vši nemají brusle ;) > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používá někdo AsciiDoc?
Jo. No právě. Vývoj není aktivní, ale vypadá to, že se dosavadní verze aktivně používá. Ona existuje implementace zpracování toho formátu v Ruby, která se jmenuje AsciiDoctor. Mě ale Ruby přijde (jako jazyk) takové moc šamanské. Nějak jsem nenašel chuť do toho jazyka pronikat. Narazil jsem na názory, že AsciiDoctor trochu uhýbá z původnífunkčnosti, a proto někteří dávají stále přednost původnímu asciidoc. Asciidoc jako formát je zajímavý. V podstatě by měl mít téměř možnosti DocBook s tím, že se to líp píše i čte (jako zdroják). DocBook je jeden z hlavních výstupů zpracování, na kterém se pak staví. Kdo znáte trochu Markdown (používá se na GitHub pro README.md zobrazované na stránce projektu), pak asciidoc je jakoby jeho mocnější alternativa (trošku podobné v přístupu, ale propracovanější). Například Scott Chacon, autor knihy Pro Git (český překlad odpovídá prvnímu vydání https://git-scm.com/book/cs/v1), u druhého vydání (anglicky https://git-scm.com/book/en/v2) přešel z markdown k asciidoc a pochvaluje si to. Je to ale Ru(g)bysta a používá AsciiDoctor. Ta implementace asciidoc.py má kolem 6200 řádků, v podstatě v jednom souboru. Ale samotnému se mi do toho nechce. Nejdříve bych navázal kontakt s autorem, protože nejspíš má plán, jak by to šlo vylepšit. Pak to chce pořádně nastudovat, (detaily syntaxe i dosavadní testy), aby se daly dopisovat nové testy pro starou i pro novou verzi. Pak by se mělo rozhodnout, jestli se bude paralelně upravovat ta dvojková verze, nebo ne. Osobně bych na dvojkovou verzi šahal jen v případě, že se napíše nový test, který odhalí chybu. Chce se do toho někomu? Petr __ Od: Petr Messner <petr.mess...@gmail.com> Komu: Konference PyCZ <python@py.cz> Datum: 15.09.2015 17:26 Předmět: Re: [python] Používá někdo AsciiDoc? Asi to bude tohle, ale na moc aktivní vývoj, nebo spíš aktivního maintainera, to nevypadá:https://github.com/asciidoc/asciidoc <https://github.com/asciidoc/asciidoc>PM Dne 15. září 2015 17:15 jaak...@gmail.com <jaak...@gmail.com> <jaak...@gmail.com <jaak...@gmail.com>> napsal(a): Ahoj Petře, jen tak ze zvědavosti, ne že bych se do toho hrnul ale docela bych si rád prohlédnul kód, který se má předělávat. Je to možné? Jar. Kubias, alias Tovim On 15.9.2015 15:20, Petr Přikryl wrote: Zdar všem pyvařům, Používáte někdo pro tvorbu dokumentace AsciiDoc formát zpracováváný pythonovskou implementací asciidoc.py? Nenašli by se tu nějací, kdo by se zapojil do předělávky pro Python 3? Mějte se fajn, Petr ___ Python mailing list python@py.cz <python@py.cz> http://www.py.cz/mailman/listinfo/python <http://www.py.cz/mailman/listinfo/python> Visit: http://www.py.cz <http://www.py.cz> ___ Python mailing list python@py.cz <python@py.cz> http://www.py.cz/mailman/listinfo/python <http://www.py.cz/mailman/listinfo/python> Visit: http://www.py.cz <http://www.py.cz> -- ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python <http://www.py.cz/mailman/listinfo/python> Visit: http://www.py.cz <http://www.py.cz> ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používá někdo AsciiDoc?
Ahoj AsciiDoc má svou Git repository tady https://github.com/asciidoc/asciidoc __ Od: "jaak...@gmail.com" <jaak...@gmail.com> Komu: Konference PyCZ <python@py.cz> Datum: 15.09.2015 17:18 Předmět: Re: [python] Používá někdo AsciiDoc? Ahoj Petře, jen tak ze zvědavosti, ne že bych se do toho hrnul ale docela bych si rád prohlédnul kód, který se má předělávat. Je to možné? Jar. Kubias, alias Tovim On 15.9.2015 15:20, Petr Přikryl wrote: Zdar všem pyvařům, Používáte někdo pro tvorbu dokumentace AsciiDoc formát zpracováváný pythonovskou implementací asciidoc.py? Nenašli by se tu nějací, kdo by se zapojil do předělávky pro Python 3? Mějte se fajn, Petr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python <http://www.py.cz/mailman/listinfo/python> Visit: http://www.py.cz <http://www.py.cz> ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python <http://www.py.cz/mailman/listinfo/python> Visit: http://www.py.cz <http://www.py.cz> ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
[python] Používá někdo AsciiDoc?
Zdar všem pyvařům, Používáte někdo pro tvorbu dokumentace AsciiDoc formát zpracováváný pythonovskou implementací asciidoc.py? Nenašli by se tu nějací, kdo by se zapojil do předělávky pro Python 3? Mějte se fajn, Petr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Paměťově náročné řazení
Zdravím, Doporučil bych ještě jeden úhel pohledu -- před rozhodnutím o způsobu implementaci. Neznám detaily řešeného problému, takže spíš obecně. Já vím, že je to jasné, ale někdy si neškodí zopaovat zásady ;) U každého řešeného problému lze analyzovat složitost -- časovou a paměťovou. Nejdříve je nutné rozhodnout, jaká z nich je u řešeného problému důležitější, případně jestli někde existují limity (velikost pamět, počet procesorů, praktická doba řešení). Nakonec se to vždy plácne jen tak (pokud je to malý problém a nemá cenu se tím zabývat), nebo se hledá kompromis -- optimalizuje se. Ale před optimalizací je nutné zvolit správný přístup. Mnohé implementační počiny vycházejí z naivního přístupu, který se pak těžko převrací do něčeho použitelného. Buď se každá část navrhne správně už od začátku, nebo se to musí dát snadno přepsat. Pokud něco z toho není splněno, jde to do kopru. Mnohá řešení tratí na tom, že se od začátku upneme na nějaký konkrétní způsob řešení (konkrétní způsob implementace). Často používáme Nic mi neříkejte, já na to přijdu sám! místo toho, abychom použili prozkoumané (i když nám zatím neznámé) techniky. Když to shrnu: - Nemístné šetření prostorem většinou sníží rychlost řešení. - Nemístné plýtvání prostorem většinou dále nezvýší rychlost řešení. - Neexistuje jediné nejlepší řešení pro všechny situace. Vždy je to kompromis. - Mohou existovat rozpoznatelné situace, kdy je výhodnější jedno z více známých řešení. Celkové řešení může být například zdvojené s tím, že se to lepší vybírá dynamicky. (Vezměte si například hloupý SQL serve s SQL dotazovacím jazykem. Tam se napřelo už tolik úsilí, že stěží sami přijdete na něco lepšího při optimalizaci dotazu.) Pokud je nutné řadit, pak nejlepší sekvenční algoritmus má teoretickou časovou složitost O(n log n). Tolikrát se budou muset transformovat data, pokud nebudou uložena. Příprava před řazením může věci urychlit. Nechtěl jsem napsat vyčerpávající odpověď ;) Mějte se fajn, Petr __ Od: Lumír Balhar frenzy.madn...@gmail.com Komu: python@py.cz Datum: 15.06.2015 22:36 Předmět: [python] Paměťově náročné řazení Ahoj všem. Řeším s kamarádem jeden jeho projekt, jehož součástí je i Burrows-Wheelerova transformace, která se používá před kompresí dat společně s Move to Front transformací pro snížení entropie vstupních dat a tím zvýšení efektivity kompresního algoritmu, kterému tyto dvě transformace předcházejí. Pochopení transformací není potřeba. U BWT se využívá tzv, buffer, který obsahuje všechny možné rotace vstupních dat, takže například pro ema má maso vypadá takto: 0 ema ma maso 1 ma ma masoe 2 a ma masoem 3 ma masoema 4 ma masoema 5 a masoema m 6 masoema ma 7 masoema ma 8 asoema ma m 9 soema ma ma 10 oema ma mas Pro malá data je to dobré, ale pro velká nelze mít celý buffer v paměti, protože se pro každý vstupní znak navíc rozšíří o řádek i sloupec zároveň. Napsal jsem tedy pro Buffer samostatnou třídu, kde pomocí __getitem__ vygeneruji potřebný řádek posunem až ve chvíli, kdy je jeho obsah potřeba. Základní buffer jsem tím vyřešil a ušetřil hromadu paměti. Problém ale je, že v dalším kroku potřebuji tento buffer lexikograficky seřadit. Abych jej opět nemusel cpát do paměti, vytvořil jsem pole indexů, kde každý index reprezentuje jeden řádek bufferu a řadím jen toto pole (čímž získám přeskládané pořadí řádků původního bufferu), ale jako klíč používám právě obsah řádku pro daný index. Konkrétně: class Buffer(): def __init__(self, input): self.input = input self.indexes = [x for x in range(len(input))] def __getitem__(self, index): return self.input[index:] + self.input[0:index] def sort(self): self.indexes.sort(key=lambda x: self[x]) A teď jsme se dostali k jádru problému. I když se obsah jednotlivých řádků generuje až ve chvíli, kdy jsou potřeba, a řadit by se mělo jen relativně malé pole indexů, při volání funkce .sort() se jakoby stejně celé to pole nejdříve vytvoří v paměti, seřadí a pak se seřadí to cílové pole s indexy na základě obsahu bufferu. Existuje způsob, jak implementovat takovýto řadící algoritmus pro velký objem dat, aniž bych je měl v jednu chvíli všechny v paměti? Předem díky za nakopnutí tím správným směrem. Lumír ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Využití Pythonu
HTML on-line verze je podle mě čitelnější http://diveintopython3.py.cz/index.html __ Od: Lukaz Nejakej lukaz1...@gmail.com Komu: python@py.cz Datum: 30.12.2014 01:25 Předmět: Re: [python] Využití Pythonu Zdravím Vás, promiňte, nečetl jsem celé vlákno, nezlobte se prosím, Pouze reaguji odkazem, na výbornou knihu od Marka Pilgrima, jak v českém překladu,tak i v doporučeném anglickém originále. EN: http://www.bogotobogo.com/python/files/pytut/dive-into-python3.pdf CZ: http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf Montymu, krajtám a krajticím zdar! Luky ___ 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 3 cp1250 retazec do utf-8
Kecám. Blbost. Ten connection string se předá, jak je. Ale nějak se tam to kódování musí vnutit dřív. Nebo se musí dosáhnout toho, aby to pyodbc nechal v binární podobě (bytes). P. __ Od: Petr Přikryl prik...@atlas.cz Komu: Konference PyCZ python@py.cz Datum: 14.08.2014 17:20 Předmět: Re: [python] python 3 cp1250 retazec do utf-8 Vrací se to 'doruèené' jako string nebo jako bytes? Pokud je to unicode string, tak už je to v tom okamžiku špatně a melo by se to řešit už dřív a ne až dodatečně. Connection string bere i další parametry, které nepředává ovladači, ale pyodbc je použije pro sebe. Nezkoušel jsem to, ale letmo jsem v dokumentaci narazil na něco takového: 'CHARSET=cp1250'. Je tam ještě nějaký parametr, aby se vše vracelo jako unicode. P. __ Od: Zdenko Podobný zdpos...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 14.08.2014 16:27 Předmět: Re: [python] python 3 cp1250 retazec do utf-8 napr. 'doruèené' a potrebujem mať 'doručené' v pyodbc kódovanie neriešim (v connect mam len db, user a pass) V odbc driveri je nastavene db aj client locale na en_US.819, ale data do db aplikacia uklada v lokalnom windows kodovanie (cp1250) ;-) Akykolvek pokus o zmenu kovania v odbc konci odmietnutim spojenia na db (testovane vo winsql). 2014-08-14 16:08 GMT+02:00 Petr Viktorin encu...@gmail.com: 2014-08-14 15:58 GMT+02:00 Zdenko Podobný zdpos...@gmail.com: Ahojte, ako prekodovat cp1250 retazec do utf-8 v pythone 3.4.1? V 2.7 to bolo jednoduche: retazec.decode('cp1250'). Retazec je vystup z databazy cez pyodbc, kde neviem ovplyvnit kodovanie... Co dostáváš za řetězec? Respektive, jaké kódování předpokládá ono pyodbc? ___ 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] OT: Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko.
A co formulace... ? Někteří lidé mluví o modelu větvení v systému Git jako o převratné vlastnosti („killer feature“). __ Od: Jakub Vysoky ja...@borka.cz Komu: Konference PyCZ python@py.cz Datum: 08.08.2014 10:04 Předmět: Re: [python][python ]Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko. Sorry ze protahuju to OTecko, ale osobne mam s prevratny rys problem, ze jsem to nikdy nikde neslysel.. A feature jako rys... hm... Ale treba se to ujme :))) On Aug 8, 2014 12:57 AM, Petr Přikryl prik...@atlas.cz wrote: terminus technicus :) To by se ovšem nemusely překládat žádné terníny. Proč potom tu knihu překládat :) No právě :) Killer feature nemá nic společného s násilím, zvlášť na lidech -- viz http://en.wiktionary.org/wiki/killer#Noun význam 3. Myslím že ona naprosto zásadní, nebo třeba převratná vlastnost by byla mnohem lepší. Jo. To je přesně ten případ. Dám: ... převratný rys (killer feature) ... i když to nevyjadřuje úplně vztah ke konkurenci a není to myšlenka uvedená Gitem. P. ___ 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] Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko.
Petr Viktorin Ví o tom lidi z CZ.NIC? Bylo by fajn kdyby pak vydali doplněnou papírovou verzi :) Ono to tam visí už dost dlouho, takže o tom asi ví. Ale s inovovanou papírovou verzí to nebude tak horké, protože to sázejí ručně. Ale zkoušel jsem jen tak cvičně PDF. Muselo by se to trochu poplácat kvůli obrázkům, ale jinak by to šlo technicky celkem snadno. P. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko.
Pojem killer feature bych raději přeložil jinak než vražedná vlastnost :) To jsem čekal! Tak jak se to řekne česky, aby to bylo takové cool? :) P. P.S. Víc hlav, víc zelí. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] [python ]Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko.
No, ono by při překladu neměl být přeložen jen význam, ale taky trochu syntaxe -- pokud to jde. Možná omračující rys ? Neusmrtí to sice tolik, jako zabití, ale mohlo by to být ono. Ještě jsem uvažoval dechberoucí rys nebo dech beroucí rys, ale k tomu spíš pasuje breathtaking feature. P. __ Od: Jakub Vysoky ja...@borka.cz Komu: Konference PyCZ python@py.cz Datum: 07.08.2014 20:57 Předmět: Re: [python]Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko. naprosto zasadni ;))) 2014-08-07 7:24 GMT-07:00 Petr Přikryl prik...@atlas.cz: Pojem killer feature bych raději přeložil jinak než vražedná vlastnost :) To jsem čekal! Tak jak se to řekne česky, aby to bylo takové cool? :) P. P.S. Víc hlav, víc zelí. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com twit: https://twitter.com/kvbik ___ 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] začiatočník programuje alebo to to nejak zabaliť do grafiky
No... Díky. Fakt je, že originál pokročil. Existuje i verze pro Python 3. Psal jsem to tenkrát ručně, přímo v HTML, bez nástroje pro podporu překladu. Je to pracné a špatně se pak doplňují změny. Pokud byste někdo měl hlubší zkušenost s OmegaT nebo s něčím podobným free, chtělo by to (http://jaksenaucitprogramovat.py.cz/) trochu oprášit. Co se týká OmegaT, zhavaroval jsem na podpoře rozsekávání HTML na věty. Mějte se krásně, Petr __ Od: rmik...@pss.sk Komu: Konference PyCZ python@py.cz Datum: 20.06.2014 21:51 Předmět: Re: [python] začiatočník programuje alebo to to nejak zabaliť do grafiky Tutorial http://jaksenaucitprogramovat.py.cz/ mozem vrele doporucit, je to skvela ucebnica a to hlavne vdaka skvelemu prekladu Petra Prikryla Ja som sa pomocou tohoto tutorialu zacal ucit Python asi pred 10 rokmi. Pocas studia som s Petrom emailom konzultoval niektore problemy, na ktore som narazil. Velmi mi pomohol a chcel by som mu za to este raz podakovat. S pozdravom Roman -Python python-boun...@py.cz píše: - Komu: Konference PyCZ python@py.cz Od: Petr Přikryl Odoslal: Python Dátum: 20.06.2014 09:25 Predmet: Re: [python] začiatočník programuje alebo to to nejak zabaliť do grafiky jaksenaucitprogramovat.py.cz/http:// __ Od: Martin Gulkaš mghor...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 19.06.2014 23:19 Předmět: [python] začiatočník programuje alebo to to nejak zabaliť do grafiky Dobrý deň! som začiatočník v pythone samouk. Práve som sa naučil ako tak základy, potrebujem jednoduchý zápis tohto programu do grafiky, alebo ako to zapísať do grafiky vid príloha.Ps trochu experimentujem = opisujem kódy ktoré sú napísane formou oop pretože v tom vidím značnú brzdu, respektívne ak sa nenaučím oop nemôžem ľahko používať alebo vytvárať grafiku. -- ___ 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 Upozornenie: Obsah tohto emailu, vrátane obsahu jeho príloh, je dôverný a je určený výlučne jeho adresátovi a ďalším osobám, ktoré sú oprávnené ho prijať. Ak nie ste určeným príjemcom tohto emailu, vezmite prosím na vedomie, že akékoľvek použitie, šírenie, vydanie alebo kopírovanie tohto emailu je prísne zakázané. Ak ste tento email obdržali omylom alebo ak sa pri jeho prenose vyskytnú akékoľvek problémy, prosím volajte +421 (2) 58555855 alebo napíšte na http://www.pss.sk/kontakty/kontaktujte-nas/. Ďakujeme. Warning: The content of this message, including its enclosures, is confidential and privileged, and it is intended only for use of the addressee or another authorized recipient. If you are not the intended recipient of this email, please be aware, that any use, dissemination, edition or duplication of this email is strictly prohibited. If you have received this email and you are not the intended recipient or if some transfer problems have emerged, please notify us immediately by telephoning +421 (2)58555855 or http://www.pss.sk/kontakty/kontaktujte-nas/. Thank you. -- ___ 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] 10 awesome Py3-only features
Python 3 používám už delší dobu -- všude, kde to jde. Fakt je, že jsou to spíš jednoduché věci. Jediné, co mě drží u Pythonu 2 je wxPython. Máte někdo zkušenost s použitím nástupce wxPython pro trojku? (Projekt Phoenix) P. __ Od: Vladimir Macek ma...@sandbox.cz Komu: \Konference uživatelů Pythonu a spol.\ python@py.cz Datum: 23.06.2014 15:33 Předmět: [python] 10 awesome Py3-only features Predpokladam, ze tu nejsem sam, kdo ma sve projekty na Pythonu 2 a ma za to, ze to jeste nejakou dobu tak bude. Po zhlednuti teto prezentace jsem ale dosti nalomen. :-) Atraktivne shrnuto. http://asmeurer.github.io/python3-presentation/slides.html Co vy? -- : Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164 : UNIX Dev || Training : Python, Django : PGP key 97330EBD : : PRÁZDNINOVÁ ŠKOLENÍ: http://macek.sandbox.cz/skoleni/aktualni/ ___ 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] Prekdovn textovch souboru z DOSu.
Varianta by mohla být: - otevřít výstupní soubor v binárním režimu - načtený vstup explicitně překódovat s některým nedefault argumentnem errors obsah.encode(encoding=cp1250, errors=backslashreplace) a zapsat výsledek. Pak budou ty nepřeložitelné znaky snadno dohledatelné jako escape sekvence a můžeš je nahradit třeba ručně (v editoru, pokud je to jednorázová věc). Taky by šlo před převodem z Unicode do výstupního souboru použít .replace() pro známé (nepřevoditelné) znaky a teprve potom zapisovat do výstupního souboru Petr __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 03.03.2014 19:54 Předmět: Re: [python]Prekdovn textovch souboru z DOSu. Az tak prosté to není, predpokládá to mít osetrené vsechny paznaky, to uz rovnou muzu definovat celé translate, ideální by byla volba ignore-all-others a mít moznost definovat univerzální nahrazující znak - ne vzdy se hodí otazník. - Puvodní zpráva - Od: Ondrej Beranek prosté. dík. 2014-03-03 17:44 GMT+01:00 Hynek Fabian hynek.fab...@firma.seznam.cz: S.translate(table [,deletechars]) - string Return a copy of the string S, where all characters occurring in the optional argument deletechars are removed, and the remaining characters have been mapped through the given translation table, which must be a string of length 256 or None. If the table argument is None, no translation is applied and the operation simply removes the characters in deletechars. On 03/03/14 17:45, Ondrej Beranek wrote: dovolim si do toho vstoupit, kdybych takovou konverzi stejne chtel provest, s tim ze si sam reknu na co to prevest je mozne nejak konverzni tabulku dodefinovat ? ___ 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] Filozoficko-průzkumná otázka
Ahoj Marku, Vezmu to z jiného konce. Tvůj úspěch je založen na multidisciplinární znalosti (historie + schopnost vytvořit nástroj užitečný pro ostatní) a toho by ses měl držet. Kolegové historici přijali tvůj programátorský příspěvek a to se nestává často. Ryzí programátoři někdy nemají cit pro koncové zákazníky. Na druhou stranu, formální vzdělání (počítačové) ti dá vědomosti, které normálně nejsou vidět, ale které ti umožní přemýšlet o věcech, které při programování zatím nikdo jiný nedělal. Dá ti základy, o kterých ostatní mnohdy ani neslyšeli. To máš jako když někdo umí rozšroubovat a složit budík (mechanický) -- hodináře to z něj nedělá, ale může všem známým okolo opravit na budíku jemu známou typickou závadu. Formální vzdělání (v jakémkoliv oboru) tě donutí učit se i věci zdánlivě zbytečné, které ale zůstanou někde schované a využiješ je v neočekávané chvíli. Všechno se dá naučit i bez formálního vzdělání. Problém je v tom, že člověk je od přírody líný a většina se (hlavně v pozdějším věku 30+) už nikdy nedonutí dostat do hlavy tolik věcí, co do té doby. Základem programování je rozvíjení představivosti související s tím, jako to uvnitř funguje a jak by to mělo fungovat. Základem je schopnost napasovat na sebe reálný problém a možnosti technického řešení. Formální vzdělání se zabývá spíš tím technickým řešením. Schopnost vidět možnosti řešení reálného problému se učí obtížněji. Pokud ji máš, rozvíjej to. Pokud budeš mít pochybnosti o zvoleném technickém přístupu, ptej se -- tady nebo jinde. Spousta lidí ti ráda poradí a nasměruje tě. Důležité je nalézt otázky. Odpovědi už se pak hledají snadněji. Petr __ Od: Marcus Scalpere xdlabac...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 26.02.2014 18:02 Předmět: [python] Filozoficko-průzkumná otázka Pěkný den vinšuji, pythonem se neživím, ale dost mě baví, jako nezaměstnaný mám dost času a dost mě těší rychlost (možná zdánlivá) pokroku. Tak bych se rád optal - kdo z vás se živí pythonem? A ti, kteří ano, co děláte (weby či něco jiného)? A jaké máte vzdělání? Jde mi o to, jestli můj koníček má budoucnost nebo to zůstane jen koníčkem. A jaká je šance na uplatnění? Berto spíš jen jako takový průzkum :-) ___ 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] GUI pro Python 3.3
Ahoj Romane, Tkinter je k Pythonu přibalený, ale je to spíš takový záchranný člun. GUI toolkitů je víc (https://wiki.python.org/moin/GuiProgramming), ale osobně bych si vybral buď wxPython (zatím jen pro Python 2) nebo Qt. Qt mi připadá horší z hlediska licenčního a taky to vypadá na těžší váhu (snaží se některé věci dělat vlastními prostředky). Víc se mi líbí wxPython. Problém je v tom, že wxPython pro Python 3 je zatím ve vývoji (projekt Phoenix http://wiki.wxpython.org/ProjectPhoenix). Očekávej vášnivé obhajování toho či onoho toolkitu, protože tohle je svatá půda :) Petr __ Od: Roman Zbořil sewerman...@gmail.com Komu: python@py.cz Datum: 18.02.2014 08:47 Předmět: [python] GUI pro Python 3.3 Učím se programovat v Pythonu. Nainstaloval jsem si Python 3.3 a po prvním rozkoukání jsem si vyzkoušel GUI tkinter. Tkinter mi přijde jednoduchý pro programování, ale jak postupně zjišťuji chybí mu pokročilejší možnosti proto hledám jiné GUI Nejde mi o to abych si okno naklikal, nevadí mi přidávat si jednotlivé prvky do okna postupně. Jaké jiné GUI (multiplatformní) je vhodné pro programování s Python 3.3? Děkuji ___ 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] spusteni programu s parametry
Může být uvedena i delší cesta. Windowsovský launcher najde python3 i v delším řetězci. P. __ Od: zu1234 zu1...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 12.02.2014 13:00 Předmět: Re: [python] spusteni programu s parametry Ahoj Ondro, Odhaduji, že pracuješ pod Windows. Zkusil jsem tento jednoduchý program nazvaný a.py: #!python3 S tímhle ale asi na linuxu moc nepochodíme. Zdrojáky s #!python3 už nebudou přenositelné, myslím. ZU ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] externí program proměnné
Přímo z shelu (cmd) se o něčem takovém nedá rozumně uvažovat. Musela by se nějak fikaně modifikovat datová oblast rodičovského procesu, což žádný OS nevidí rád. Proměnné prostředí zde se vždycky kopírují do dětského procesu a dělá se to v okamžiku vytváření nového procesu. Opačná cesta není. Jenže Python se do té cesty umí vklínit jinak. Umí vytvořit nový proces a předhodit mu místo kopie svůj vlastní prostor s proměnnými prostředí. Ale ten je taky jen kopií z jeho otce. To znamená, že v Pythonovském procesu sice zjistím, co udělal potomek, ale rodičovi už to ven neřeknu. Dejme tomu, že mám dávku a.bat == @echo off set moje=moje promenna prostredi echo %0: %moje% == Pythonovský skript může vypadat takto (a.py) == #!python3 import os import subprocess p = subprocess.Popen('a.bat', env=os.environ) retcode = p.wait() v = os.environ['moje'] print('Python: retcode z davky je {}, vracena hodnota je {}'.format(retcode, repr(v))) == Vypíše to: == c:\__Python\geona.py a.bat: moje promenna prostredi Python: retcode z davky je 0, vracena hodnota je 'moje promenna prostredi' == Tady to není nic proti ničemu -- žádné znásilňování. Jen se prostě neudělá kopie vlastního prostředí, ale předá se to stejné prostředí dětskému procesu. 2013/11/20 g...@post.cz mailto:g...@post.cz Jak z Pythonu zavolat externí program (*.bat), aby po navrácení do pyscriptu zůstaly zachovány systémové proměnné v něm nastavené? wxp, w7, py3.2, py2.7 ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] How To again
Widget v Tkinteru je OK. Je to doslova prvek mající vlastní okno. To platí i pro label, takže tady není žádný problém. Problém by nastal po překladu, kdyby se to překládalo jako ovládací prvek. Ovládací prvek by mohl být OK pro tlačítko, radio button, check box a podobné jednoduché věci... Ale třeba samotný list box může mít z pohledu uživatele víc ovládacích prvků (šoupátko scroll baru, tlačítka scrollbaru, klikací oblasti nad a pod šoupátkem, nebo dokonce vybíratelné položky). Naproti tomu listbox jako widget je OK, protože je to prvek uživatelského rozhraní s vlastním oknem. P. __ Od: Tovim jaak...@gmail.com Komu: 'Konference PyCZ' python@py.cz Datum: 22.08.2013 16:27 Předmět: Re: [python] How To again Ahoj Michale, zu, Petře. Dovoluji si připomenout, že počátkem debaty bylo dilema, zda widget či piškot. Jestli má být widget překládán jako ovládací prvkek, komponenta či whatnot je už jaksi nad plán. V Tkinteru je label widgetem, až už je ovládacím prvkem či není. BW, Tovim From: Python [mailto:python-boun...@py.cz] On Behalf Of Petr Nesladek Sent: Thursday, August 22, 2013 8:54 AM To: Konference PyCZ Subject: Re: [python] How To again Po delší době mne debata vyprovokovala taky přispět ... - widget je pro mne jasný technicky zažitý termín (ano poprvé jsem taky zapátral cože to znamená, ale dál navždy je to jendoznačné) - ovládací prvek - zní jasně ze světa Windows ... proč ne, ale label - jak už bylo napsané nic neovládá - a v tom směru by přesnější byl grafický prvek - a nebo se spokojit s tím prvkem -komponenta je jasná v jednom uzavřeném textu, ale jako ustálené označení pro wiget je to podle mého názoru moc obecný výraz, ale koneckonců možný, (jen bych se pořád ubezpečoval , že stále mluvíme o tomtéž) Takže podle mého nározu jsou priority a oblíbenost v pořadí: widget, ovládací(grafický) prvek, komponenta. Piškot nebo udělátko asi jen jednotlivě pro jeden článek, jako ustálený termín bych se jim asi vyhýbal. Petr -- Původní zpráva -- Od: zu1234 zu1...@seznam.cz Datum: 22. 8. 2013 Předmět: Re: [python] How To again Můj názor čtenáře je takovýto: slovo widget mne mate. Vyvolává to ve mně dojem něčeho důležitého a tak speciálního, že to musí být extra pojmenováno - což je nesmysl. Pokud existují varianty prvek, ovládací prvek, nebo dokonce komponenta, tak bych velmi přivítal kdybychom zůstali u nich. Nemordujme zbytečně češtinu pokud to není nezbytné. ZU Dne 21.8.2013 21:32, Michal Molhanec napsal(a): Dobrý den, já chci jenom upozornit, že control tj. ovládací prvek je ve světě Windows (já vím, fujky, fujky) ale také třeba wxWidgets/wxPythonu prostě libovolný prvek UI, tj. zcela to samé co widget v knihovnách původem pocházejících ze světa unixu. Osobně (čistě soukromý názor, který nikomu nevnucuji) nevidím důvod, proč nepoužívat ovládací prvek i pro překlad slova widget, je to zaběhlý termín, který často znají i neprogramátoři. Případně jenom prvek (uživatelského rozhraní), pokud se to zdá lepší. Jinak ve Swingu se používá termín komponenta, ten je úplně univerzální, i když mně se moc nelíbí (je dlouhý :-) ). Zdraví, Michal Molhanec Dne 21.8.2013 13:48, Petr Přikryl napsal(a): Přidávám se k názoru Petra Blahoše. Pojem by se měl překládat přesně. Nemusí to být 1:1, ale pojem v cílovém jazyce by měl být přesný pro čtenáře v cílovém jazyce. Souvisí to s představivostí, s abstraktním myšlením. Ne vždy se všechno překládá pečlivě s ohledem na srozumitelnost. To ale neznamená, že je to správně. Ovládací prvek by měl dělat to, co ten pojem říká. Label je widget, ale podle mého názoru to není ovládací prvek. Programátoři se nakonec stejně musí naučit anglicky (alespoň pasivně). Význam překladu odborného textu pro programátory (podle mého názoru) je dvojí: 1) pomůže začátečníkům, 2) pomáhá zvládnout složitější věci, protože složitější programátorské věci vyžadují představivost. Schopnost snadno si něco představit souvisí se znalostí jazyka (lidského jazyka jako takového) a se znalostí pojmů. Pokud pojem není možné snadno přeložit, často jej stačí obšírně vysvětlit (aby si čtenář vytvořil svou představu) a používat jej v originálním znění -- převzetí slova (skloňovat; tedy widget, widgetu,...) Programátor čte jak české, tak anglické texty. Pokud se to někde hemží zkratkami jako GUI, a pojmy widget, pak je těžké mentálně přecházet k textu, kde se to hemží GUR a piškot. Buď to má zůstat co nejpodobnější, nebo to musí dávat velmi dobrý smysl v češtině. Z mého pohledu je proto překlad pojmu label jako prvek GUI mnohen přijatelnější než ovládací prvek. Ale v textu -- pokud je to srozumitelné -- může přirozeněji působit méně rigidní překlad jako popis nebo popisný prvek. Při překladu se to někdy musí řešit opisem. Důležité ale je, aby ten opis stvořil programátor, protože se musí opsat mentální obraz, který
[python] Widget (Re: How To again)
Původní widget souvisí s dalším podobným gadget. Obě slova se používala už před existencí moderních počítačů a něco znamenají. Gadget je má možná trochu určitější smysl než widget. Traduje se, že v software se pojem widget začal používat ve smyslu window gadget. Bacha na piškoty. Narozdíl od widget/gadget pod tímto pojmem rozumíme něco docela konkrétního. A dovedu si představit, že se to někomu bude plést s cookies. A další věc je, jestli ten překlad má být hlavně zábavný nebo hlavně užitečný. Takové to americké Python je dobrý, protože je zábavný je trochu ujeté, jako celé USA. Pojmy by měly mít v daném oboru přesný význam pro co nejvíc lidí. Jde o to, že samotné vyslovení pojmu má navodit abstraktní představu (mentální obraz) popisované věci nebo jevu. Nejde o to, jestli to někomu připadá zábavné. Musí to být přesné a co nejvýstižnější. Pokud v tomto smyslu přijdeš na něco českého, co většině lidí zaklapne jako super nápad pro danou věc, pak budeš vychvalovaným vynálezcem pojmu. Není vyloučené, že se to tobě nebo někomu povede, ale piškot tyhle vlastnosti nemá. 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ý. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] How To again
Přidávám se k názoru Petra Blahoše. Pojem by se měl překládat přesně. Nemusí to být 1:1, ale pojem v cílovém jazyce by měl být přesný pro čtenáře v cílovém jazyce. Souvisí to s představivostí, s abstraktním myšlením. Ne vždy se všechno překládá pečlivě s ohledem na srozumitelnost. To ale neznamená, že je to správně. Ovládací prvek by měl dělat to, co ten pojem říká. Label je widget, ale podle mého názoru to není ovládací prvek. Programátoři se nakonec stejně musí naučit anglicky (alespoň pasivně). Význam překladu odborného textu pro programátory (podle mého názoru) je dvojí: 1) pomůže začátečníkům, 2) pomáhá zvládnout složitější věci, protože složitější programátorské věci vyžadují představivost. Schopnost snadno si něco představit souvisí se znalostí jazyka (lidského jazyka jako takového) a se znalostí pojmů. Pokud pojem není možné snadno přeložit, často jej stačí obšírně vysvětlit (aby si čtenář vytvořil svou představu) a používat jej v originálním znění -- převzetí slova (skloňovat; tedy widget, widgetu,...) Programátor čte jak české, tak anglické texty. Pokud se to někde hemží zkratkami jako GUI, a pojmy widget, pak je těžké mentálně přecházet k textu, kde se to hemží GUR a piškot. Buď to má zůstat co nejpodobnější, nebo to musí dávat velmi dobrý smysl v češtině. Z mého pohledu je proto překlad pojmu label jako prvek GUI mnohen přijatelnější než ovládací prvek. Ale v textu -- pokud je to srozumitelné -- může přirozeněji působit méně rigidní překlad jako popis nebo popisný prvek. Při překladu se to někdy musí řešit opisem. Důležité ale je, aby ten opis stvořil programátor, protože se musí opsat mentální obraz, který odpovídá anglickému pojmu. (Proto stojí překlady odborných textů přeložené angličtináři s humanitním vzděláním často za prd.) P. Od: Jan Bednařík Ovládací prvek taky nemusí nic ovládat. Třeba label je běžně používaný ovládací prvek, který nese jen vizuální informaci. Zkuste nahlédnout do odborné literatury, manuálů, či jen vygooglete ovládací prvek a mrkněte, v jakém kontextu se používá. Už dávno je to obecně zažitý překlad pro widget v GUI, tak bych se ho držel a nesnažil se vymyslet něco lepšího. Rozhodně ne nějaké paskvily jako piškot. 2013/8/21 Petr Blahos Ovládací prvek není widget, ale control. Widget nemusí nic ovládat. Pokud zde probíhá forma hlasování, tak hlasuji pro widget, widgety, s widgetem, ... ale respektuju, že hlavní slovo má auto překladu. 2013/8/20 Jan Bednařík 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. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] How To again
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
Re: [python] Suma podle klice slovniku v seznamu
Ahoj všeci, Já bych přece jen zůstal u těch cyklů a pořádně to okomentoval. Jedna věc je nějak to napsat a druhá věc je být schopný po roce znovu pochopit, co jsem tím myslel (v lepším případě) nebo co tím myslel někdo druhý (v tom horším). lst1 = [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b']) for x in lst1] print('seznam dvojic hodnot:', lst2) d = {} for a, b in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota print('slovnik sum:', d) lst3 = [{'a': a, 'b': b} for a, b in d.items()] print('vysledny seznam:', lst3) Když vynecháte ty tři meziprinty, není to ani moc dlouhé. Kdo má chuť a čas, mohl by zkusit nějaký větší příklad a timeit. Ona je ale otázka, jak vůbec vznikl ten původní seznam. Připadá mi to jako databázová tabulka se sloupci A a B. Jestli by nebylo lepší použít opravdovou tabulku (sqlite) a opravdový SQL dotaz. Mějte se fajn, Petr __ Od: Jan Bednařík jan.bedna...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 00:32 Předmět: 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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Suma podle klice slovniku v seznamu
O collection.Counter tu byla zmínka, ale řešení neodpovídá požadavku. P. __ Od: Jirka Vejrazka jirka.vejra...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 09:58 Předmět: Re: [python] Suma podle klice slovniku v seznamu Trochu mi unika, proc se tady resi onelinery, kdyz uz starenka napsal skvele reseni pres collections.Counter, ktery je k tomu primo urceny :) Jirka 2013/4/16 Petr Přikryl prik...@atlas.cz Ahoj všeci, Já bych přece jen zůstal u těch cyklů a pořádně to okomentoval. Jedna věc je nějak to napsat a druhá věc je být schopný po roce znovu pochopit, co jsem tím myslel (v lepším případě) nebo co tím myslel někdo druhý (v tom horším). lst1 = [{'a':4,'b':3},{'a':4,'b':5},{'a':1,'b':3},{'a':3,'b':2}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b']) for x in lst1] print('seznam dvojic hodnot:', lst2) d = {} for a, b in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota print('slovnik sum:', d) lst3 = [{'a': a, 'b': b} for a, b in d.items()] print('vysledny seznam:', lst3) Když vynecháte ty tři meziprinty, není to ani moc dlouhé. Kdo má chuť a čas, mohl by zkusit nějaký větší příklad a timeit. Ona je ale otázka, jak vůbec vznikl ten původní seznam. Připadá mi to jako databázová tabulka se sloupci A a B. Jestli by nebylo lepší použít opravdovou tabulku (sqlite) a opravdový SQL dotaz. Mějte se fajn, Petr __ Od: Jan Bednařík jan.bedna...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 00:32 Předmět: 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 ___ 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
Je to tím, že tam nedoplňuješ aktuální hodnotu toho c. Musí se zapamatovat pro každé a. Může se zapamatovat třeba tak, že se do pomocného slovníku bude ukládat spolu se sumovanou hodnotou. Třeba takto: lst1 = [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print('puvodni seznam slovniku:', lst1) lst2 = [(x['a'], x['b'], x['c']) for x in lst1] print('seznam trojic hodnot:', lst2) d = {} for a, b, c in lst2: sum_lst = d.setdefault(a, [0, c]) # seznam, kde k prvnímu prvku se přičítá... sum_lst[0] += b # ... hodnota b print('slovnik sum:', d) lst3 = [{'a': a, 'b': b, 'c': c} for a, (b, c) in d.items()] print('vysledny seznam:', lst3) (Ono se to formátování zase zprasí, takže ty dva řádky se sum_lst jsou odsazené pod for.) Petr __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 16.04.2013 15:06 Předmět: Re: [python] Suma podle klice slovniku v seznamu 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. 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}] Tady je přehled co jsem zkoušel, tyhle dvě jdou, ale vrací špatné 'c' = lst1 = [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] lst2 = [(x['a'], x['b'], x['c']) for x in lst1] d = {} for a, b,c in lst2: d[a] = d.get(a, 0) + b # dosavadní součet nebo nula plus nová hodnota lst3 = [{'a': a, 'b': b, 'c': c} for a, b in d.items()] print('vysledny seznam:', lst3) == from itertools import groupby def summarize(data): get_b = lambda x: x['b'] get_a = lambda x: x['a'] get_c = lambda x: x['c'] return ( {'a': val, 'b': sum(map(get_b, group)),'c':val} for (val, group) in groupby(data, key=get_a) ) data= [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print list(summarize(data)) === A toto už háže chybu from itertools import groupby from operator import itemgetter def summarize(data): get_a = itemgetter('a') get_b = itemgetter('b') get_c = itemgetter('c') return ( {'a': val, 'b': sum(map(get_b, group)),'c':valc} for (val, group,valc) in groupby(data, key=get_a) ) data= [{'a':4,'b':3,'c':9},{'a':4,'b':5,'c':9},{'a':1,'b':3,'c':7},{'a':3,'b':2,'c':6}] print list(summarize(data)) ___ 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] cvičení z formátování řetězce
(Našel jsem to pozdě :) Od: Vladimir Macek ':'.join(re.findall('..?', a)) Ten otazník asi není nutný. Pokud by se toho dělalo víc, pak je lepší použít kompilovaný regulární výraz. Podle mého názoru je to pak ještě trochu čitelnější. (Kdo se bojí, použije ještě r'..', ale je to zbytečné :) import re rex = re.compile('..') ... a = abcdefghijkl ':'.join(rex.findall(a)) P. P.S. Teď ještě dobrovolníka , který na ta řešení nasadí timeit ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] cvičení z formátování řetězce
Jo vlastně. To je pravda. Nějak se mi do toho uvažování vnutila ethernetová adresa, kde je to sudý počet hexa cifer. :) __ Od: rajcze raj...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 05.03.2013 15:07 Předmět: Re: [python]cvičení z formátování řetězce Jen tak pro uplnost - ten otaznik nutny je, schvalne si to zkus pustit na retezci s lichym poctem znaku ;) J. 2013/3/5 Petr Přikryl prik...@atlas.cz: (Našel jsem to pozdě :) Od: Vladimir Macek ':'.join(re.findall('..?', a)) Ten otazník asi není nutný. Pokud by se toho dělalo víc, pak je lepší použít kompilovaný regulární výraz. Podle mého názoru je to pak ještě trochu čitelnější. (Kdo se bojí, použije ještě r'..', ale je to zbytečné :) import re rex = re.compile('..') ... a = abcdefghijkl ':'.join(rex.findall(a)) P. P.S. Teď ještě dobrovolníka , který na ta řešení nasadí timeit ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet. ___ 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
Od: Roman Beno romanbeno...@gmail.com ... Čo sa týka Raiczeho kritiky, podobný systém s odkazom na metódy jednej konkrétnej instancie je uplatnený v module random. V modulu random má ale vytvoření instance _inst jeden důležitý důvod. Instance použije při své inicializaci aktuální čas jako zárodek pro generování náhodných čísel -- ale jen když se neudá explicitně. Zárodek (seed) se používá v různých metodách instance. Je to tam zkrátka složitější a někdy je nutné pracovat se stejným zárodkem, aby byla posloupnost náhodných čísel opakovatelná :) Instance tam slouží k uložení toho zárodku. Při prostém používání nás detaily nezajímají a místo instance a jejích metod nás zajímají funkce (jako v matematice). Jejich implementace (jako metod interní instance) může být uživatelem chápána jako implementační detail. Obecně, práce s instancemi tříd je výhodná jen v situaci, kdy instance udržuje nějaký vnitřní stav, tj. kdy má smysl uvažovat o metodách jen v situaci, kdy by to bez toho vnitřního stavu komplikovalo rozhraní volané funkčnosti. if __name__=__main__: # čo robit s instaciou(ami) po spustení z termu.. Z obecného pohledu v této části nelze mluvit o instancích tříd protože žádné nemusí existovat. Python není čistě objektově orientovaný a umožňuje (podobně jako C++) přirozenější přístup k výstavbě programu. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Spouštění Pythonovských programů ve Windows (Re: program na pozadí Windows)
Pro Windows existuje ještě jedna nová možnost. S Python 3.3 byl zaveden Python Launcher for Windows (http://docs.python.org/3/whatsnew/3.3.html#pep-397-python-launcher-for-windows), který do Windows propašovává další kousek funkčnosti známý z unixových OS. Jsou to dva programy py.exe a pyw.exe, které se (při instalaci Python 3.3 samy) nainstalují do systémového adresáře Windows, takže jsou v cestě. Na prvním řádku skriptu hledají #! a podle jeho obsahu spustí příslušnou verzi Pythonu. Kromě toho se pro Windows zaregistrují asociace na přípony .py a .pyw, které vedou ke spuštění py.exe (verze s cmd oknem) respektive pyw.exe (verze bez cmd okna). Při uvedení #! řádku na začátku (zjednodušeně #!python2 nebo #!python2) a použití požadované přípony souboru (py nebo pyw) se pak při odklepnutí pythonovského souboru spustí ta správná verze a varianta Pythonovského interpretu. Z cmd okna můžu taky explicitně spouštět py pgm.py nebo pyw wxprogram.py. Nezkoušel jsem to, ale předpokládám, že jsou to celkem jednoduché programy a jde to přenést odjinud prostým okopírováním. Všem přeji do nového roku jen to dobré a příjemné, Petr __ Od: Petr Blahos petrbla...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 10.01.2013 07:53 Předmět: Re: [python] program na pozadí Windows Pomohlo by nespouštět to přes python.exe ale pythonw.exe? (pokud to teda byla otázka na python...) Aha, vlastně aby se to nespustilo v konzoli,tak je potřeba souštět pythonw.--Petr 2013/1/9 jirka.vejra...@gmail.com Pokus mi pamet slouzi dobre, tak jedna moznost je spustit program tak, aby mel pouze ikonku v tray (vpravo dole). Pokud by mel byt uplne schovany a bezet i kdyz neni nikdo prihlaseny, je potreba ho zaregistrovat jako sluzbu. Ale mozna se pletu, uz je to dlouho co jsem neco podobneho resil. Jirka --Original Message-- From: Ing. Vladislav Ludík Sender: Python To: Konference PyCZ ReplyTo: Konference PyCZ Subject: [python] program na pozadí Windows Sent: Jan 9, 2013 19:53 Zdravím, chci aby program běžel na pozadí i bez otevřeného okna pod Windows. Existuje něco jako je nohup v Linuxu i ve Windows ? Díky Vláďa ___ 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 -- _ http://sites.google.com/site/petrsstuff/ -- ___ 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] OT: Sháním lidi?==?UTF-8?Q? k českému překladu ?==?UTF-8?Q?gitbook na git-scm.com
Ahoj všichni, Tohle jde trochu mimo Python, ale věřím tomu, že tak rozumní lidé, kteří si vybrali jazyk Python a používají ho téměř jako svou mateřštinu, mohou mít blízko i k skvělému nástroji jménem Git. Mám takovou ideu (která možná zapadne pro nedostatek zájmu), že by se k dokončení nebo oprášení částečného překladu http://git-scm.com/book/cs využil originální text + nástroj pro podporu překladu OmegaT (free) + překlad knihy http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf (licence to umožňuje). Kontaktoval jsem autora částečného překladu, zkontaktuji případně Scotta Chancona (autora originálu) a případně ještě překladatele do jiných jazyků. Mým cílem je vytvořit živý projekt, který by umožnil další vývoj českého překladu na stránkách http://git-scm.com/ Bude to práce zadarmo, zato s důrazem na kvalitu :) Pokud znáte nějaké lepší fórum, kde by se kroky směřující k uvedenému cíli daly lépe realizovat, případně další nosné nápady, sem s tím. Mějte se fajn, Petr Přikryl ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Zji?==?UTF-8?Q?štění názvu souboru
Zkus __file__. Příklad -- soubor a.pokus == print __name__ print __file__ == a spusť to nejdříve přes python a.pokus. Mělo by to vypsat: __main__ a.pokus S py2exe nemám zkušenosti, takže netuším, jestli to tam procpeš. Petr __ Od: Martin lisi...@seznam.cz Komu: python@py.cz Datum: 02.08.2012 00:01 Předmět: [python] Zjištění názvu souboru Dobrý den, Nějak se mi nepodařilo najít odpověd na nasledující problém. Zde je situace: Kliknu ve 32 bitovém Windows Vista Premium na soubor (ne .py ani .exe) textového charakteru, který bude mít mnou zadanou nestandardní příponu a pro tenhle typ souboru nadefinuji Windowsu, aby se po kliknutí na něj spustil můj program zkonvertován pomocí py2exe. Program se spustí a já potřebuji v daném programu vědět název souboru, kterým byl spuštěn, aniž by ho daný program dopředu znal. Jak toho docílím? Používám Python verzi 2.7.2. Děkuji za odpověď Martin ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.close
A tím FreeCommanderem jsi tam lezl před tím nebo až potom? Jakým programem/komponentou se k tomu souboru nebo adresáři přistupovalo před tím mazáním? V některých případech některé typicky používané komponenty (např. ADO nebo jiné databázové vrstvy) používají cache. I po uzavření si něco mohou chvíli držet. Setkal jsem se s tím u ADO. Dá se to potlačit, ale musí se hledat jak. P. __ Od: zu1234 Komu: Konference PyCZ Datum: 09.05.2012 08:21 Předmět: Re: [python] file.close Ale tím to asi není: adresář sem kontroloval pomocí FreeCommaneru a používám absolutní názvy souborů, takže nemám důvod se do adresáře přepínat. Ale díky za myšlenku. Zatím se domnívám, že je to nějaká prodleva windows-ů, kterou pořešil sleep(1). ZU Dne 8.5.2012 14:24, Petr Přikryl napsal(a): Pokud se do něj díváš přes konzoli (cmd), pak adresář, který je pracovním adresářem konzole brání smazání adresáře -- i když je prázdný. Asi to platí i v případě, kdy si pracovní adresář přepneš do toho dočasného (aniž by ses tam koukal přes cmd). P. ___ 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] file.close
Pokud se do něj díváš přes konzoli (cmd), pak adresář, který je pracovním adresářem konzole brání smazání adresáře -- i když je prázdný. Asi to platí i v případě, kdy si pracovní adresář přepneš do toho dočasného (aniž by ses tam koukal přes cmd). P. __ Od: zu1234 Komu: Konference PyCZ Datum: 02.05.2012 16:11 Předmět: Re: [python] file.close 5) Nakonec jsem musel před rušením dočasného adresáře ponechat time.sleep(1). Jinak nastávala chyba: adresář není prázdný Možná už není potřeba do toho nějak šťourat, ale tohle je divný. Jak přesně se ten dočasný adresář ruší (maže)? Ruším pomocí shutil.rmtree(...) . Když se do něj podívám je samozřejmě prázdný. Pro mne to má jedno vysvětlení: jsou to windowsy. 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
Re: [python] Unicode/ne-unicode problem
Nejjednodušší je to převést nejdříve do Unicode a druhým krokem do požadovaného kódování. Tohle jsem dělal pod Windows na konzoli, která používá cp852: u = uě š č ř u u'\u011b \u0161 \u010d \u0159' s = u.encode('utf-8') s '\xc4\x9b \xc5\xa1 \xc4\x8d \xc5\x99' u2 = s.decode('utf-8') u2 u'\u011b \u0161 \u010d \u0159' u3 = unicode(s, 'utf-8') u3 u'\u011b \u0161 \u010d \u0159' sLatin2 = u.encode('iso8859_2') sLatin2 '\xec \xb9 \xe8 \xf8' .decode() nebo unicode() to převede na Unicode řetězec. .encode() to převede na požadované kódování. V názvu kódování má být oficiálně znak podtržení, ale implementace toleruje i uvedení velkých písmen a pomlček. Měj se, Petr __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ 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] Unicode/ne-unicode problem
Ten nečitelný řetězec je zapsaný ve zdrojovém textu, nebo je načtený ze souboru? Když mám v proměnné UTF-8 bajty, tak musím udělat .decode() nebo unicode(), ale jako parametr musím uvést to 'utf-8'. Posloupnost bajtů v kódovaní UTF-8 je jednou z možných reprezentací Unicode řetězce. Vznikla tedy zakódováním (například u.encode('utf-8')) unicodového řetězce. Když z toho chci dostat zpět Unicode řetězec, musím provést dekódování, takže u = s.decode('utf-8') nebo u = unicode(s, 'utf-8'). Je možné, že je ta posloupnost bajtů porušená, pak to může řvát, že neví co s tím. Pošli sem, jak vypadá repr(a) (pokud je to pro Python 2). Ptej se dál, ono se to vyjasní. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ 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] Unicode/ne-unicode problem
Já vidím tohle: rr = '\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.' a = eval(rr) a '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' u = a.decode('utf-8') Traceback (most recent call last): File stdin, line 1, in module File c:\Python27\lib\encodings\utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 9: invalid continuation byte To rr je okopírované tvoje repr. Pomocí eval() to převedu na hodnotu a. Pak volám a.decode('utf-8') a ono to jinými slovy říká, že to není v utf-8. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 02.05.2012 11:52 Předmět: Re: [python] Unicode/ne-unicode problem Je to proměnná, kde obsah byl získaný ze streamu dat. a='Ă˝ á Ă Ă.' repr(a) '\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.' Dík, JL. - Původní zpráva - Od: Petr Přikryl prik...@atlas.cz Ten nečitelný řetězec je zapsaný ve zdrojovém textu, nebo je načtený ze souboru? Když mám v proměnné UTF-8 bajty, tak musím udělat .decode() nebo unicode(), ale jako parametr musím uvést to 'utf-8'. Posloupnost bajtů v kódovaní UTF-8 je jednou z možných reprezentací Unicode řetězce. Vznikla tedy zakódováním (například u.encode('utf-8')) unicodového řetězce. Když z toho chci dostat zpět Unicode řetězec, musím provést dekódování, takže u = s.decode('utf-8') nebo u = unicode(s, 'utf-8'). Je možné, že je ta posloupnost bajtů porušená, pak to může řvát, že neví co s tím. Pošli sem, jak vypadá repr(a) (pokud je to pro Python 2). Ptej se dál, ono se to vyjasní. P. __ Od: Jaroslav Lukesh luk...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 27.04.2012 10:35 Předmět: [python] Unicode/ne-unicode problem Dobrý den, potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový výstup, ale nějak mi to nejde. Vstup: znaky ě š č ř v utf8 již v binární formě, systém je v iso8859-2 Čekám že z toho nějak dostanu ě š č ř ale pořád nic. Jak mu říct, že 'Ă˝ á Ă Ă.' je už v utf8? Děkuji, JL. a='Ă˝ á Ă Ă.' A=unicode(a,'iso8859-2') print a Ă˝ á Ă Ă. A=unicode(a,'utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data A.encode('iso8859-2') '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' a.encode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 18, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) A.decode('iso8859-2') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/iso8859_2.py, line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) a.decode('iso8859-2') u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' a.decode('utf8') Traceback (most recent call last): File stdin, line 1, in ? File /var/zope/python/lib/python2.4/encodings/utf_8.py, line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: invalid data ___ 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] lite?==?UTF-8?Q?ratúra
Každému pasuje něco jiného. Knížka se dá číst ve vlaku i bez notebooku. Čtečka typu Kindle (nebo něco podobného) může být dobrým kompromisem. Alespoň občasné připojení na Internet je asi nevyhnutelné. A taky si musím přihodit.. :) http://diveintopython3.py.cz/ Mějte se všichni fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dotaz na vi(m)kingy -- podpora pro Python
Díky všem za vim tipy ;) P. __ ... Mě se docela líbí propojení Vim s interpretem. Je na to hezký plugin pro iPython: https://github.com/ivanov/vim-ipython Ještě je zajímavý plugin TagList. Díky němu se dá hezky poskočit na začátek definice funkcí. Na root.cz vyšel seriál docela hezký seriál: http://www.root.cz/clanky/vim-na-plny-vykon-vimrc/#ic=articles-relatedicc=nej-vim-pluginy-12064 http://www.root.cz/clanky/nej-vim-pluginy/ a o ještě Pavel Satrapa: http://www.root.cz/clanky/jak-si-prizpusobit-vim/ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dotaz na vi(m)kingy -- podpora pro Python
Díky za info. Uložil jsem to do $HOME/.vimrc (tedy pod Windows do %HOME%\.vimrc. Líbí se mi zvýrazňování koncových mezer. Ale současně se tím přebilo zvýrazňování syntaxe. Jak to udělat, aby to fungovalo současně? Petr __ Od: rajcze raj...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.04.2012 10:19 Předmět: Re: [python] Dotaz na vi(m)kingy -- podpora pro Python Jako dobry zaklad doporucuju tohle: setlocal tabstop=4 setlocal softtabstop=4 setlocal shiftwidth=4 setlocal expandtab setlocal nowrap setlocal formatoptions+=c highlight BadWhitespace ctermbg=red guibg=red syn match BadWhitespace /^\t\+/ syn match BadWhitespace /\s\+$/ A pak samozrejme pythoncomplete http://www.vim.org/scripts/script.php?script_id=1542 J. 2012/4/16 Petr Přikryl prik...@atlas.cz: Ahoj všichni, Po velmi dlouhé době bych si rád osvěžil znalosti editoru vi(m). Vím o Statrapově tutorialu, kdysi jsem vi používal... Používáte nějaké specifické doplňky/nastavení pro editaci pythonovských zdrojáků? Dík za odkazy. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet. ___ 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] Dotaz na vi(m)kingy -- podpora pro Python
Ahoj všichni, Po velmi dlouhé době bych si rád osvěžil znalosti editoru vi(m). Vím o Statrapově tutorialu, kdysi jsem vi používal... Používáte nějaké specifické doplňky/nastavení pro editaci pythonovských zdrojáků? Dík za odkazy. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- nová verze na http://diveintopython3.py.cz/
Zdravím všechny, Děkuji zu1234 za všímavé oko. Opravil jsem níže zmíněný odkaz a na úvodní stránku jsem doplnil informaci o Pilgrimově informační sebevraždě. Kromě toho jsem zveřejnil alternativní PDF a obsah v podobě jednoho velkého HTML (pro vyhledávání). Vše najdete popsané na úvodní stránce. Našel jsem taky řadu chyb v HTML značkování odkazů (vznikly při technickém zpracování původního textu). Při generování toho velkého HTML vznikají nějaké chyby, takže to PDF taky není perfektní. Nefunguje například číslování kapitol (zatím jsem neměl čas to opravit). Pokud narazíte na nějakou chybu (i drobnou), budu rád, když mi dáte vědět. Pokud máte někdo zkušenosti s validací HTML5, budu rád, když to otestujete. Nějaké značkovací chyby tam ještě budou. Mějte se fajn, Petr Od: zu1234 Komu: Konference PyCZ python@py.cz Datum: 23.03.2012 10:58 Předmět: Re: [python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby... Hledal jsem chardet a narazil jsem na stránce http://diveintopython3.py.cz/case-study-porting-chardet-to-python-3.html na nefunkční odkaz Knihovnu jsem přenesl do Pythonu 2 -- http://chardet.feedparser.org/ a posléze i na informaci o internetové sebevraždě autora. Myslím by nebylo marné oba tyto jevy alespoň okomentovat (například v nějaké předmluvě). Oba spolu souvisí, ale jeden z nich se nestává každý den. ZU ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Python 3 česky -- chyby můžete zapsat na github
Pokud narazíte na problém, můžete k jeho nahlášení využít i nástroje github https://github.com/pepr/diveintopython3cz/issues Je to český překlad a české problémy, proto pište česky (dva problémy jsem tam už zaznamenal). Pokud neumíte anglicky, pak musíte nejdříve stisknout tlačítko New issue (nový problém) a dál už by to mělo být jasné. Mám s github jen malé zkušenosti, proto nevím, jestli byste si tam museli zřídit účet, jak moc to je či není pro vás přijatelné, nebo jestli můžete problém ohlásit anonymně. Proto neodmítám ani jiné způsoby komunikace, tj. přes tuto diskusní skupinu nebo přímý mail. Mějte se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby...
zu1234 napsal... Při prohlížení HTML verze mi poněkud vadila velká výška řádků. Hlavně se tím (na mém (normálně) malém) monitoru znehodnocuje výborné synchronní označování řádků programu a odpovídajícího komentáře. Pořešil jsem to tak, že jsem si ve své lokální kopii upravil css definice. Když kliknete dole na Mark Pilgrim, dostanete se na stránku O knize http://diveintopython3.py.cz/about.html. Když i na této stránce kliknete dole na Mark Pilgrim, dostanete se na stránku Tiráž http://diveintopython3.py.cz/colophon.html ... a na ní se dočtete: Nikdy nepodceňujte hloubky, do kterých se stále něco odkládající autor noří. Nyní již od Internetu odstřižený, případně pod neznámým pseudonymem se připojující autor je zjevně perfekcionista -- i když to z lehkého stylu psaní nemusí být na první pohled tak patrné. Určitě má nastudované přinejmenším základy typografie. K jejich nejzákladnějším základům patří i volba písma, řádkování, stylu všeho možného. Abych to zkrátil... Věřím, že někdy se zhuštěnější písmo může hodit, ale zrovna tyhle věci nebudu upravovat pro celý zveřejněný překlad knihy. Mimochodem, okouzlen výkladem o generátorové notaci slovníku jsem se ji jal zkoušet. Ale zapomněl jsem že jedu na verzi 2.5 :-) Vřele doporučuji přejít na poslední verze Pythonu, tedy na 2.7.2 a na 3.2.2 http://www.python.org/download/ Python 2.7 je velmi dobře použitelný všude tam, kde jste použil Python 2.5. Navíc má implementovánu většinu věcí z Pythonu 3, které se daly přenést. Viz například: c:\python Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32 Type help, copyright, credits or license for more information. d = { k:k*3 for k in xrange(5) } d {0: 0, 1: 3, 2: 6, 3: 9, 4: 12} Mějte se fajn a Pythonu... (', '.join(['zdar'] * 3) + '!').capitalize() 'Zdar, zdar, zdar!' Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- hledám spolupracovníky na generování LaTeXu z originálu, různých ebook forem...
zu1234 ... zu1...@seznam.cz Jsem asi jiného ročníku než většina přítomných. Dnes frčí hecker a anonymous. Za mojeho mládí by se řeklo partizán :-)) Lidi jsou již několik tisíc let stejní. Mění se jen technologie. Věk nerozhoduje ;) Věřím, že někdy se zhuštěnější písmo může hodit, ale zrovna tyhle věci nebudu upravovat pro celý zveřejněný překlad knihy. To jsem ani neměl na mysli. Jen pokud by to někomu vadilo, tak že to jde upravit. Nebudu to upravovat v hlavním vzhledu dokumentu, ale pořád je tu možnost, že se může generovat alternativní podoba. Příkladem je už teď generované PDF http://diveintopython3.py.cz/PonormeSeDoPythonu3pdf.zip, které vzniklo s využitím nástrojů, který použil autor originálu pro vznik tištěné podoby originálu. Je to ale forma PDF, která nebyla přijata příznivě, protože kniha potřebuje něco jiného, než vytištění HTML. Ale mám takovou představu, že by se tím někdo mohl dál zabývat. Proto jsem to celé šoupnul na github. Generování solidních alternativ základní formy dokumentu by mě bavilo samotného, ale nemám na to teď moc času. Nějaké dřívější zkušenosti a poznatky ale mám, takže můžu být nápomocný při sdělování svých představ nebo při nějaké pomoci či řízení prací. Jednou z generovaných forem by mohla být zhuštěná verze pro malé displeje, případně i pro různé chytré telefony a tak. Chce to ale někoho, kdo to vyzkouší nejdřív šolichat trochu ručně, k něčemu dospěje, probereme to tady v ovzduší konstruktivní kritiky, aby se to udělalo pořádně. Jako další formu bych rád viděl převod do LaTeX nebo jiné podoby TeX, protože poskytuje vynikající možnosti sazby a také následnou možnost vygenerování kvalitního klikacího a barevného PDF. Ale už jsem z toho trochu vypadl vytrousil jsem dřívější zkušenosti. Pokud by se tady někdo našel, ozvěte se. Pro zájemce budu nápomocen i se zprovozněním Git (systém pro správu verzí, ve kterém je současný stav zachycen i s poslední historií). Na https://github.com/pepr/diveintopython3cz by se to celé soustředilo a mohli by se přidávat další. Jen bych se dovolil prohlásit se za koordinátora, aby se to celé nerozsypalo. Přece jen už jsem do toho vložil dost práce. S pozdravem, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Dive Into Pyton 3 cesky -- opraveno, sbiram chyby...
Ahoj všichni, Na http://diveintopython3.py.cz/ najdete několik minut/hodin starou verzi překladu Dive Into Python 3. - Všechny HTML soubory byly přeformátovány podle originálu, takže by tím měly být opraveny chyby v zalamování příkladů. - Přibyla příloha E, ve které najdete seznam posledních změn a úprav. - Přeneseny byly všechny opravy a úpravy, které Mark Pilgrim provedl před informační sebevraždou. - Byly změněny odkazy na originální webovou podobu. Vše je k dispozici v podobě Git archivu na https://p...@github.com/pepr/diveintopython3cz.git Kromě vlastních HTML dokumentů tam najdete i pomocné skripty -- částečně převzaté od Marka Pilgrima, částečně upravené nebo vytvořené. Nahrubo je tam konfigurace pro generování alternativní PDF podoby, kterou si můžete stáhnout jako http://diveintopython3.py.cz/PonormeSeDoPythonu3pdf.zip Čtěte, hledejte chyby, posílejte náměty na další zpracování. Ale hlavně... ... mějte se fajn, Petr P.S. Pokud má někdo zkušenosti s automatizovaným generováním elektronické a tištěné podoby z HTML 5 (do PDF nebo do jiných formátů, přes TeX nebo jinak), ozvěte se mi. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Problém s českými znaky v cgi scriptu
Tomáš Kácel napsal... [...] Myslel jsem, že python3 funguje na utf-8 a neměl by mít s čekými znaky problém, stejně tak prohlížeč je nastaven na utf-8. Python 3 pracuje s unicode řetězci. UTF-8 je jedno z možných kódování unicode řetězců, když je potřeba je za fyzicky zaznamenat a nepracovat s nimi jako s posloupnostmi znaků v abstraktním smyslu. To znamená, že před odeslání mimo vnitřní paměť pythonovského procesu musí dojít k převodu na posloupnost bajtů (například metodou .encode()). Funkce print() je ale napojená na výstupní stream (standardně sys.stdout), který rovněž používá nějaké kódování řetězců (v závislosti na OS a jeho konfiguraci). Funkce print() se ale sama snaží převést unicode řetězec do onoho (skrytého) výstupního kódování. Z těchto důvodů není ke generování výstupního HTML souboru vhodné používat funkci print(). Lepší je otevřít výstupní textový soubor f pro kódování UTF-8 a zapisovat do něj metodou f.write(s) Doporučuji si přečíst http://diveintopython3.py.cz/strings.html a http://diveintopython3.py.cz/files.html P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] diveintopython3.py.cz -- zahájeny opravy a úpravy
Zdravím všechny, zu1234 napsal(a) Nevíte proč stránky http://diveintopython3.py.cz/; neumí písmeno 'ě'? Zatím se to nevyřešilo, ale v příslušném zip http://diveintopython3.py.cz/PonormeSeDoPythonu3-html.zip najdete verzi, kde jsem začal s oprašováním: 2012-02-21 U HTML souborů byl odstraněn BOM (tj. teď je UTF-8 bez BOM) 2012-02-21 Odkazy na originál změněny na nové 2012-02-22 about.html naformátováno podle originálu 2012-02-22 Pojem alfametika nebo alfametická hádanka změněn na algebrogram 2012-02-22 advanced-iterators.html - upraveno formátování podle originálu 2012-02-22 blank.html - formátování upraveno podle originálu Pokud někdo narazíte na chyby, špatné zalomení, cokoliv, dejte mi vědět. Budu to postupně zapracovávat. Mějte se fajn, Petr Přikryl ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] diveintopython3.py.cz -- zahájeny opravy a úpravy
Díky ViNiLovi už by to mělo zase fungovat. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] špatné znaky v http://diveintopython3.py.cz/
Zkoušel jsem to tam nahrát znovu. Asi je to tam uložené dobře, ale zprasí se to někde po cestě ven (i když to kopíruji přes WebDAV). P. __ Od: zu1234 zu1...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2012 10:50 Předmět: [python] špatné znaky v http://diveintopython3.py.cz/ Nevíte proč stránky http://diveintopython3.py.cz/; neumí písmeno 'ě'? Není to škoda? Přitom v ZIP archivu http://diveintopython3.py.cz/PonormeSeDoPythonu3-html.zip je to OK. 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
Re: [python] Informace o parcele -- Polívkova 26
A dopr... Omlouvám se. To jsem fakt nechtěl :) Pokud to někdo můžete smazat, tak to odstraňte. Díky za pochopení, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] dotaz na webovou aplikaci v pythonu
Dive Into Python 3 = Ponořme se do Pythonu 3 http://diveintopython3.py.cz/ On zas ten Python 3 pro naučení se tak odlišný není. Rozdíly rozhodně nejsou tak velké, aby ses té publikaci vyhýbal obloukem -- ať už se pak rozhodneš pro Django nebo něco jiného. Co se týká práce s knížkami, bude vhodné pracovat v Unicode (týká se to i databáze). V Python 3 se s Unicode řetězci pracuje přece jen trochu přirozeněji. Unicode a souvislosti s Pythonem je věnována kapitola 4. Řetězce (http://diveintopython3.py.cz/strings.html). Python 2.7 se na druhé straně svými vlastnostmi snaží Pythonu 3 přibližovat. Styl práce tedy nebude tolik odlišný. Definitivní rozhodnutí pak může padnout podle toho, co bude podporovat zvolený framework. V závislosti na tom, jak se projekt bude vyvíjet, by možná stálo za to dohodnout se s vedoucím práce, že bys jako součást projektu zařadil i srovnání řešení v Python 2.7 a Python 3.x. Přepisu z Python 2 do Python 3 je v Dive Into Python 3 věnována příloha A (http://diveintopython3.py.cz/porting-code-to-python-3-with-2to3.html). Můžeš taky zkusit pracovat podle té knížky a zkoušet všechno v Pythonu 2.7. Mělo by to být poměrně snadné. Ale je potřeba opravdu NĚJAK začít. Ono se taky může stát, že bude za chvíli venku Django pro Python 3. Takže opravdu doporučuji začít s Pythonem, osahat si ho na příkladech a menších částech projektu (ověření principiálních možností a schopností tebe jako programátora je využít). Teprve pak bych přistoupil k rozhodnutí, v čem to přesně napsat. Při tom rozhodování musíš mít jasno, co vlastně budeš dělat. Principy řešení projektu už musíš mít v hlavě a pokusný kód na harddisku ;). Ještě jednou to zdůrazním: Poslední Python 3 není principiálně jiný, než Python 2.7. Petr __ Od: Vlastimil Slinták Komu: Konference PyCZ Datum: 29.09.2011 12:06 Předmět: Re: [python] dotaz na webovou aplikaci v pythonu Pardon, ten odkaz na Dive into Python beru zpět. Ta kniha je totiž o Pythonu 3, který není zpětně kompatibilní s verzemi 2.X. Navíc Django také neběží pod Python 3. Takže na to pozor. On 29. 9. 2011, at 11:57, Vlastimil Slinták wrote: On 29. 9. 2011, at 11:27, Tomáš Kácel wrote: Dobrý den, děkuji za odpovědi a omlouvám se za to, jaké chyby jsem napsal v předchozím textu.Byla skoro jedna hodina ráno a čeština nebyla nikdy můj kamarád(určitě najdete nedostatky i v tomto textu) a také jsem z bakalářské práce docela vystresovaný, protože jsem kompletní včerejší den brouzdal po internetu a četl knížku o pythonu a večer to na mě dolehlo. Není třeba být vystresovaný. Vždyť je skoro začátek zimního semestru a bakalářka se odevzdává na konci letního, ne? Pokud se na to nevykašleš a budeš případné problémy konzultovat s vedoucím práce, tak není důvod aby jsi ji nenapsal a neobhájit. K úrovni bakalářské práce(FIMU) bych chtěl říci, že jsem napsal zadání opravdu jednoduše oproti originálnálu.Samozdřejmě, že zde databáze být musí(protože výsledky které najdu například na knihi.cz(to je opravdu s i :-D) se budou moci po dotazu uložit do databáze, aby když někdo zadá stejnou knihu tak to znovu nehledalo recenzi a hodnocení.Dále by zde moli být další věci jako zjistit jestli je kniha dostupná ve fakultni knihovně atd. Mám vytvořit vlatní analýzu a návrh problému(vyhledávač hodnocení knih) a posléze to co navrhnu naprogramovat.Raději se držím opravdu při zemi, abych si nevymyslel nějaké grafy a statistiky a potom bych nenaprogramoval ani ťuk. A nyní jsem dost zmaten jestli mám Django začít studovat nebo ne protože názory se zde dosti liší. Jestli Django použít či ne: Za sebe můžu říct, že s Djangem jsem se učil i Python. Ale udělej si názor sám. Podívej se na tutoriál, zkus si napsat jednoduchou web aplikaci a uvidíš. https://docs.djangoproject.com/en/1.3/intro/tutorial01/ Navíc dokumentace Djanga je opravdu dobrá a na webu najdeš spoustu projektů, ze kterých se také můžeš hodně naučit. Syntax Pythonu pochytíš rychle a zbytek najdeš třeba v Dive into Python (http://www.root.cz/knihy/dive-into-python-3/ myslím, že je i český překlad od CZ.NIC). Vlastik ___ 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] Py 3.2.1 final ?
Od: Tomix to...@tiscali.. Je někde k mání? Měla vyjít 19.6. a kde nic tu nic. :-( Nevím, kde se říkalo, že 19. 6. měla vyjít finální 3.2.1. Aktuální informace je, že má vyjít 10. 7. Dne 2. 7. vyšel 3.2.1rc2. Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] hash objektu, kontrola aktuálnosti dat v databázi
Interní hash(x) jen volá metodu příslušného objektu x.__hash__() a jednou z jejích priorit je nalezení místa v dict(). Ale v dict() se s konflikty musí celkem počítat, takže kvůli rychlosti nebude moc spolehlivá. Přidávám se k Jirkovi Vejražkovi a k jeho doporučení standardního modulu hashlib. Problém je ale jinde. Hash (kvalitní varianta) je jen velké číslo, které mi pomůže odhalit, že je něco stejné. Pokud ale buduji databázi ze stránek obsahujících jídelníček, pak mi jednotlivých záznamů není celkem k ničemu. Stejně musím zjistit datum, restauraci... Netvoříš přece databázi, ve které je hash klíčem. Potřebuješ hledat podle více klíčů. Hash celé stránky nebo její významné části by mohl pomoci odhalit, jestli se stránka změnila (pokud to nejde zjistit rozumnějším způsobem). Pokud tam změna není, nemusím dělat nic. Pokud tam změna je, musím stejně rozlézt všechny záznamy a porovnat je s databází podle klíčů. Pokud budu mít nový potenciální objekt databáze (obalený záznam), který má stejný hash jako existující objekt databáze, nedělám nic. Pokud má jiný hash, musím ho stejně vložit. Proč bych měl pracně zjišťovat, jestli tam takový objekt zatím není a teprve pak ho vkládat? Jednodušší je ho tam prostě vložit (nahradit případně už existující). Nebo mi nějaká část myšlenky utekla? Mrkni na možnost zjistit položku HTTP hlavičky Last-Modified http://diveintopython3.py.cz/http-web-services.html#last-modified Petr __ Od: martin...@...il.com Stačilo se na to trochu vyspat a už asi vím, jak to provedu. Ale i tak, budu opravdu vděčný za každou připomínku. Aby byl jasný kontext, jedná se o parsování obědových meniček z různých restaurací, sbírám tyhle data, abych k nim pak měl přístup z aplikace na Androidu. Každé jedno jídlo je uloženo v databázi ve vlastním záznamu, je u něj odkaz na restauraci ke které patří, pro jaký den, cena, případně gramáž, atd. Z těchto jednotlivých dat můžu jednoduše udělat jeden string a z něho udělat hash a poznačit rovnou do záznamu toho konkrétního jídla. Když příjde kontrola dat, znovu se každé jídlo zparsuje, vyrobí se objekt databázového modelu a když je hotovo, tak si k nim vytáhnu už existující data z databáze a porovnám hashe, ty které se změnili nechám být, změněné updatuju, ty co jsou tam navíc vymažu. Nic lepšího mě nenapadlo :) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
David Rohleder píše [...] Když už jsme u těch řetězců: jak se udělá raw unicode řetězec, tj. interpret neinterpretuje uvnitř? Generuju si latexový dokument a on se přirozeně vzteká na: hlavicka = ur documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print hlavicka SyntaxError: (unicode error) 'rawunicodeescape' codec can't decode bytes in position 39-40: truncated u To je jedno z těch temných zákoutí. Ono se to vzteká už při hlavicka = ur'usepackage' print hlavicka Problém je v tom, že raw-unicode-escape s předponou ur není tak úplně 'raw'. Interpretují se posloupnosti u -- viz http://docs.python.org/tutorial/introduction.html#unicode-strings: For experts, there is also a raw mode just like the one for normal strings. You have to prefix the opening quote with ‘ur’ to have Python use the Raw-Unicode-Escape encoding. It will only apply the above u conversion if there is an uneven number of backslashes in front of the small ‘u’. V tomto případě mě napadá jen ta možnost, že se napřed vyrobí raw string (starý, neunicode) a převede se druhým krokem na unicode: == # -*- coding: utf-8 -*- hlav = r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print type(hlav) hlavicka = unicode(hlav, 'utf-8') print type(hlavicka) print hlavicka == Dá se to trochu vylepšit tím, že si nadefinuješ funkci u(), aby se to hezčeji zapislovalo: == # -*- coding: utf-8 -*- def u(raw_string, encoding='utf-8'): return unicode(raw_string, encoding) hlavicka = u(r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} ) print type(hlavicka) print hlavicka == V případě chroupání LaTeXových textů bych ale vážně uvažoval o použití Python 3 -- i kdyby jen pro tento účel. Tam se z toho stane jen raw string, který bude automaticky unicode (nový str se rovná starému typu unicode): == # -*- coding: utf-8 -*- hlavicka = r documentclass[a4,landscape]{article} usepackage{graphicx} usepackage[czech]{babel} usepackage[utf8]{inputenc} begin{document} thispagestyle{empty} print(type(hlavicka)) print(hlavicka) == Pokud toho chroustacího kódu máš víc, pomůže pythonovská utilitka 2to3 -- viz http://diveintopython3.py.cz/case-study-porting-chardet-to-python-3.html#running2to3 P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
Mailer mi sežral zpětná lomítka. Dopiš si je tam. To je jedno z těch temných zákoutí. Ono se to vzteká už při hlavicka = ur'usepackage' print hlavicka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Tisk unicode řetězce a tisk seznamu unicode řetězců
David Rohleder Petr Přikryl píše Jak píše Tomáš. Jakmile si začneš s texty s diakritikou, vždycky je lepší používat Unicode řetězce (i když je otrava psát před literály u a dávat [...] a není ta definice na začátku # -*- coding: utf-8 -*- ekvivalentní uřetězec? Není. Ta definice na začátku souboru jen říká interpretu, jak má interpretovat znaky ve zdrojovém textu. Neříká nic dalšího o tom, co se s nimi děje u starých řetězců (bez u na začátku). Pokud je zdrojový text v utf-8, pak i v paměti bude v řetězcovém objektu stejná posloupnost bajtů, jako v souboru. V řetězcovém objektu ale není nikde informace o kódování -- ta existuje mimo objekty a má charakter dohody. (Každý soubor může používat jiný způsob kódování. Nevím o způsobu, jak by se dalo v pythonovském programu zpětně zjistit, v jakém kódování byl uveden zdrojový text -- ale možná něco takového je.) Teprve když použiteš unicode řetězec, přehrká interpret při překladu posloupnost bajtů z literálu za pomocí informace z # -*- coding: ... -*- na posloupnost abstraktních unicode znaků. V Pythonu 3 už se prefix u psát nemusí -- všechny řetězcové literály se převádějí na unicode řetězce. Unicode řetěze nevyužívá žádné kódování. Je to prostě unicode řetězec. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] Fwd: Re: Re: učit Python 2.x nebo 3.x
Přeposílám ještě pár poznatků Jiřího Znamenáčka, který Python momentálně používá při výuce... Petr __ Původní zpráva: Od: Jiří Znamenáček Datum: 06.06.2011 11:28 Předmět: Re: Re: [python] učit Python 2.x nebo 3.x [...]Pár komentářů mám, ale řešení ne :) Nečteš náhodou tuhle konferenci? Ptá se tam nějaký člověk, jestli na střední škole začít učit Python 3 nebo Python 2. Zajímavá otázka. S Pythonem 2.7 nemám vůbec žádné zkušenosti, jen matnou představu z 2.6. Vyjádřil bych se spíš obecně 2.x versus 3.x. Dva komentáře obecně: ~ Python 3.x je sice zpětně nekompatibilní, ale troufám si tvrdit, že ke škodě jazyka příliš málo – věcí na opravení (a zbavení se historického balastu) tam bohužel i tak zbyla spousta :-( ~ Ale přes to všechno je řada 3.x mnohem, hm, logičtější jazyk. Zvláště rozšíření použití iterátorů a sjednocení všehokoliv (nechci říkat zrovna syntaxe). Prostě kód v Pythonu 3.x v mnoha ohledech působí „přirozeněji“. Z hlediska výuky: ~ Chcete-li studenty seznámit s programováním na dynamicky typovaném jazyce, je Python asi pořád jedna z lepších (a čitelnějších) voleb. (I když už léta ztrácím přehled, takže...) ~ Python vám vnutí celkem rozumnou štábní kulturu. Počítejte ale s tím, že i v jeho dosti pevných mantinelech se najdou lidi, kteří ji ohnou takovým způsobem, že se nebudete stačit divit :-) ~ I v trojkovém Pythonu je spousta ošklivých věcí, ale pořád méně než ve dvojkovém. ~ Mimochodem řada 3.x působí zatím skoro celou dobu jako testovací beta, takže jestli trojkový Python, tak rovnou až 3.2 :-) Ten vzal zpátky některé podivné změny a vypadá, že se vývoj konečně trochu ustálil. Tudíž neslaný-nemastný závěr: ~ Je-li vaším hlavním úkolem zpracovávání textu v jakémkoliv jiném kódování než ASCII, zapomeňte na Python 2.x a používejte rovnou 3.1+. (Nebo si aspoň důkladně ověřte, že autor knihovny, kterou zrovna potřebujete, s Unicodem počítal...) ~ Potřebujete-li spolupráci externích knihoven, důkladně si nastudujte, zda jsou k dispozici pro Python 3.x. Většinou to nebude pravda a budete muset použít Python 2.x. Osobně si pořád (po dvaceti letech :-) myslím, že základy programování se nejlíp vysvětlují na Karlovi. Logo je pěkné, ale už zbytečně obsáhlé. A „normální“ jazyky – Python v to počítaje – jsou z tohohle hlediska už úplně mimo. Popravdě bych byl radikální a kdybych mohl, tak bych povinně předepsal NEJDŘÍV kurs Haskellu nebo něčeho podobného funkcionálního, a AŽ POTOM bych nasadil procedurální jazyk. Jirka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] učit Python 2.x nebo 3.x
Od: Marek Nožka ... Rád bych zařadil Python do výuky programování na střední škole a rád bych se zeptal na váš názor ohledně toho, jestli učit Python 2 nebo 3. Python 2.7 implementuje hodně věcí z Python 3. Rozdíly rozhodně nejsou nepřekonatelné. Pro Python 3 bych se rozhodoval pokud by se důraz kladl na zpracování českého textu (nový typ string, unicode a z toho mírně odlišný přístup při práci se soubory v textovém režimu, ...). Doporučil bych se spojit s těmi, kdo to už učí. Budou mít poznatky z první ruky. (Znám dva, aspoň jeden to tady čte...) pro trojkouvou řadu zatím nejsou moc knihovny. (Jde mi hlavně o SciPy, NumPy a Matplotlib, protože jsme technická škola.) Další problém je s návody a tutoriály. Ty jsou zatím spíš pro v2. Nedávno byl vydán český překlad Dive Into Python 3 pod názvem Ponořme se do Pythonu 3 (http://knihy.nic.cz/, html verze na http://diveintopython3.py.cz/). Jsou tam shrnuty poznatky autora související s rozdíly vůči Python 2, jak upravovat starší zdrojáky, na co si dát pozor atd. Myslíte si, že bych měl raději začít v.2.x a pak teprve přejít ke 3.1? Puristický a extrémistický přístup vyžaduje jedině Python 3.2.1. Faktem je, že v praxi je stále ještě víc dostupný Python 2, takže bych volil 2.7. (Pro mě osobně je brzdou v přechodu k Python 3 hlavně balík wxPython.) Měj se fajn, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] XML a ElementTree
Jen obecná poznámka... Na http://diveintopython3.py.cz/ jsem umístil HTML verzi českého překladu Dive Into Python 3. Doporučuju kapitolu 12. XML http://diveintopython3.py.cz/xml.html. Lepší je momentálně asi jen lxml, která používá stejné aplikační rozhraní, ale podporuje víc do hloubky XPath... V Python 2 se s ElementTree dělá podobně. Měj se fajn, Petr __ Od: Vlastimil Slinták Komu: Konference PyCZ Datum: 12.05.2011 19:16 Předmět: [python] XML a ElementTree Zdravím, snažím se v Pythonu parsovat XML soubor pomocí xml.etree.ElementTree. Chtěl bych z xml stromu načíst obsah některých konkrétních tagů a případně je změnit a zapsat zpět. Bohužel se mi to nedaří. Abych nemluvil obecně — snažím se udělat si pořádek ve své elektronické knihovně, která obsahuje knihy ve formátu EPUB. To je v podstatě ZIP archiv, který obsahuje soubor content.opf se všemi informacemi. V tomto souboru, který má formát XML, jsou uloženy informace o autorovi, názvu knihy, ISBN a další (viz příloha). V Pythonu zkouším něco takového: import xml.etree.ElementTree as ET tree = ET.parse('content.opf’) # Všechny elementy mohu projít přes iterátor: for e in tree.getiterator(): print e.tag # Mně ale zajímají pouze některé elementy, # zkouším je najít... tree.find(’title’) tree.find('package/metadata/title’) # Ani přes kořenový element se nedaří root = tree.getroot() root.find(’title’) root.find('package/metadata/title’) # Pokud se pokusím vyhledat tag ‚title’ včetně # jmenného prostoru, dostanu výjimku root.find('dc:title’) SyntaxError: expected path separator (:) Pravděpodobně jsem jenom nepochopil jak se pracuje s XML. Jak mám načíst obsah jenom těch elementů, které mě zajímají abych s nimi mohl dál pracovat? Případně, existuje lepší knihovna na práci s XML v Pythonu? S pozdravem, VS ___ 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] Zveřejněna HTML verze českého překladu Dive Into Python 3
Zdravím všechny, Na http://diveintopython3.py.cz/ najdete HTML verzi českého překladu Dive Into Python 3 od Marka Pilgrima (http://diveintopython3.org/), čili Ponořme se do Pythonu 3. Tento text byl podkladem pro sazbu stejnojmenné knihy, která vyšla v Edici CZ.NIC -- viz http://knihy.nic.cz/. Na stránce http://knihy.nic.cz/ najdete i odkaz na PDF verzi. S pozdravem, Petr Přikryl P.S. Postupně ta HTML učešu a zapracuji opravy a úpravy z originálu. Když najdete chybu, neváhejte a napište. Víc očí víc vidí. Víc hlav, víc zelí. ;) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Optimalizace
Musí se taky dát pozor na to, v jakém pořadí jsou ty bajty uloženy. Různé operační systémy a různé procesory mohou způsobit uložení bajtů z 32bitového čísla v různém pořadí. Pokud ten kód má být nějak univerzální, musí se na to myslet. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Nastavení default kódování print-u (je?t? jednou)
Ať se na to díváš jak chceš, vždycky někde nastane nějaká komplikace. Problém je v tom, že string v Pythonu 2.x je posloupnost bajtů a informace o kódování u toho není zachycena. Nakonec jsem dospěl k tomu, že je nutné používat unicode řetězce (i v Pythonu 2). Zatím to může být v reálném provozu utopie, ale je dobré se pomalu přeorientovávat na Python 3. Petr __ zu1234 napsal Děkuji za krásné uvedení do problému!! K obsluze kódování na výstupu z programů jsem začal používat codecs.getwriter(...) jak mi zde bylo poraděno. Pod windows mi to například umožňuje nastavit stdout (který jde do souboru) na cp1250 a strerr (který jde na terminál) na cp852. Je to dobré řešení až na jeden problém: Pokud nastavím kódování i na stderr a nastane chyba při běhu programu na řádku obsahujícím české znaky, nezobrazí se popis chyby. To trochu komplikuje ladění programu. Nevím jak to odstranit. Například: --- Varianta s sys.stderr = codecs.getwriter #!/usr/bin/python # -*- coding: utf-8 -*- import sys import codecs sys.stderr = codecs.getwriter('cp852')(sys.stderr) print ššš %s % () --- Chybové hlášení částečné: Traceback (most recent call last): File x.py, line 10, in Varianta bez sys.stderr = codecs.getwriter #!/usr/bin/python # -*- coding: utf-8 -*- import sys import codecs # sys.stderr = codecs.getwriter('cp852')(sys.stderr) print ššš %s % () --- Chybové hlášení úplné: Traceback (most recent call last): File x.py, line 9, in print ┼í┼í┼í %s % () TypeError: not enough arguments for format string Dne 19.4.2011 12:30, Filip Štědronský napsal(a): Dne 22.3.2011 14:38:22 napsal zu1234: Ale mohl by mi někdo vysvětlit proč to nejde bez reload? #!/usr/bin/python # -*- coding: utf-8 -*- import sys reload(sys) if sys.stdout.isatty(): # Výstup jde na terminál: sys.setdefaultencoding('cp852') else: # Výstup jde do souboru: sys.setdefaultencoding('cp1250') print u'šílené' Ahoj, tohle všechno je způsobeno tím, že funkce setdefaultencoding není tak úplně určena pro uživatele. Při startu Pythonu se automaticky importuje modul site.py, který se stará o všechny možné druhy nastavení a inicializací a který je podle potřeby možné přizpůsobit podle potřeb cílové platformy a/nebo administrátora. Tam se mimo jiné volá funkce setdefaultencoding s nějakou hodnotou, kterou to považuje za rozumnou pro dané prostředí (v linuxu se to snaží uhodnout podle locale, na oknech to nejspíš bude vždy ascii). A poté, co to udělá, prostě funkci setdefaultencoding z modulu sys smaže (aby si s ní nehráli programátoři --- neboť v dobré víře je nastavení kódování považováno za věc prostředí, do které Pythoní program, kterýžto by měl být na prostředí nezávislý, nemá co mluvit). Reloadem se sys vrátí do původního stavu, tedy včetně metody, kterou původně site smazal. Pro podrobnější informace doporučuji projít site.py někde v knihovních adresářích pythonu. Snad to dává aspoň trochu smysl Filip Štědronský ___ 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] Pro volný čas - Algebrogram
Jen pro zajímavost, stejná věc se řeší v Ponořme se do Pythonu 3 od Marka Pilgrima. V českém překladu http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf je to na straně 175 a 176 (pojem algebrogram jsem neznal, takže jsem to přeložil trochu otrocky). Úloha se formálně zapisuje jako boolovský výraz a využívá se (trochu hodně nebezpečná) funkce eval(): JAN + DNES + NEVI + ZDA + SE + JEDE + JEDNA + JIZDA == ZNOVA V angličině je to tady a dá se tam přímo stáhnout i pythonovský zdroják. Ale pozor je to upraveno pro Python 3. Originální řešení od Raymonda Hettingera je tady (pro Python 2): http://code.activestate.com/recipes/576615/ Hledá to ale jen první řešení (pak to zastaví, dalo by se to upravit). Možná to není nejefektivnější, ale řešení je zapsáno na pár řádcích. (Na mém průměrném počítači to první řešení JAN DNES NEVI... ukázalo asi za 10 sekund (varianta pro Python 3). (Taky to není upravené na česká písmena, ale to se dá jednoduše.) Mějte se všichni fajn, Petr __ Tomix napsal Datum: 15.04.2011 18:04 Předmět: [python] Pro volný čas - Algebrogram Zdravím, už dlouho se tu neřešil nějaký kvíz, tak bych jeden měl: http://nb.vse.cz/~fabry/hadanky-algebrogram.html JAN DNES NEVÍ ZDA SE JEDE JEDNA JÍZDA --- ZNOVA Zajímalo by mě, jestli je v Pythonu možné napsat řešení, které proběhne v rozumném čase. Tak do hodiny. Moje řešení se za několik hodin dostane cca do poloviny potřebných cyklů. (amd1700+) Stejný kód, přepsaný do C++ proběhne komplet za 20 minut. Moje řešení v Pythonu: http://codepad.org/wWPg3qQf A v C++ http://codepad.org/fcy0MEmA Příkad má 10 řešení. -- Tady je ještě jeden, lehčí: http://nb.vse.cz/~fabry/hadanky-algebrogram-prsi-prsi.html PRŠÍ PRŠÍ JEN SE LEJE (104 řešení) --- Tomix ___ 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] Pro volný čas - Algebrogram
A ještě bych vám všem rád poradil, abyste si příspěvky po sobě pořádně přečetli... :))) ... v angličtině je to tady http://diveintopython3.org/advanced-iterators.html __ Petr Přikryl Jen pro zajímavost, stejná věc se řeší v Ponořme se do Pythonu 3 od Marka Pilgrima. V českém překladu http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf je to na straně 175 a 176 (pojem algebrogram jsem neznal, takže jsem to přeložil trochu otrocky). Úloha se formálně zapisuje jako boolovský výraz a využívá se (trochu hodně nebezpečná) funkce eval(): JAN + DNES + NEVI + ZDA + SE + JEDE + JEDNA + JIZDA == ZNOVA V angličině je to tady a dá se tam přímo stáhnout i pythonovský zdroják. Ale pozor je to upraveno pro Python 3. Originální řešení od Raymonda Hettingera je tady (pro Python 2): http://code.activestate.com/recipes/576615/ Hledá to ale jen první řešení (pak to zastaví, dalo by se to upravit). Možná to není nejefektivnější, ale řešení je zapsáno na pár řádcích. (Na mém průměrném počítači to první řešení JAN DNES NEVI... ukázalo asi za 10 sekund (varianta pro Python 3). (Taky to není upravené na česká písmena, ale to se dá jednoduše.) Mějte se všichni fajn, Petr __ Tomix napsal Datum: 15.04.2011 18:04 Předmět: [python] Pro volný čas - Algebrogram Zdravím, už dlouho se tu neřešil nějaký kvíz, tak bych jeden měl: http://nb.vse.cz/~fabry/hadanky-algebrogram.html JAN DNES NEVÍ ZDA SE JEDE JEDNA JÍZDA --- ZNOVA Zajímalo by mě, jestli je v Pythonu možné napsat řešení, které proběhne v rozumném čase. Tak do hodiny. Moje řešení se za několik hodin dostane cca do poloviny potřebných cyklů. (amd1700+) Stejný kód, přepsaný do C++ proběhne komplet za 20 minut. Moje řešení v Pythonu: http://codepad.org/wWPg3qQf A v C++ http://codepad.org/fcy0MEmA Příkad má 10 řešení. -- Tady je ještě jeden, lehčí: http://nb.vse.cz/~fabry/hadanky-algebrogram-prsi-prsi.html PRŠÍ PRŠÍ JEN SE LEJE (104 řešení) --- Tomix ___ 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] Python a XML (Re: Jaky zpusobem ukladat data do pole)
Stone napsal... Potrebuju vedet, jak se ukladaji data rekneme tomu, kdyz mam XML dokument? Jaka je reprezentace v Pythonu? Existuji nejake postupy? V současnosti je asi nejlepší xml.etree (standardní modul -- http://docs.python.org/library/xml.etree.elementtree.html#module-xml.etree.ElementTree) nebo podobný s vylepšenými vlastnostmi lxml (není standardní, stáhnout z PyPI). Koukni na Dive into Python 3 od Marka Pilgrima, kapitola 12: XML (http://diveintopython3.org/xml.html) nebo na český překlad na http://knihy.nic.cz/ Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Python a XML (Re: Jaky zpusobem ukladat data do pole)
Jak píše Petr Blahoš, pokud už znáš SAX nebo DOM přístupy ke zpracování XML, pak jsou odpovídající standardní moduly přímo v Pythonu. Ale pokud ty zpracovávané XML dokumenty nejsou extrémně velké a nemusí se zpracovávat průběžně (můžou se celé načíst do paměti -- jinak by bylo nutné použít SAX), pak je asi lepší začít s xml.etree. P. Stone napsal... Potrebuju vedet, jak se ukladaji data rekneme tomu, kdyz mam XML dokument? Jaka je reprezentace v Pythonu? Existuji nejake postupy? V současnosti je asi nejlepší xml.etree (standardní modul -- http://docs.python.org/library/xml.etree.elementtree.html#module-xml.etree.ElementTree) nebo podobný s vylepšenými vlastnostmi lxml (není standardní, stáhnout z PyPI). Koukni na Dive into Python 3 od Marka Pilgrima, kapitola 12: XML (http://diveintopython3.org/xml.html) nebo na český překlad na http://knihy.nic.cz/ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Jaky zpusobem ukladat data do pole
Zkus tohle pole1 = {}# prázdný slovník (ekvivalent perlovského hash) pole2 = {} f = open('trace.data') for line in f: k, v = line.rstrip().split('=', 1) # .rstrip() odstraní n print repr(k), repr(v) pole1[k] = v f.close() f = open('trace.cfg') for line in f: k, v = line.rstrip().split('=', 1) print repr(k), repr(v) pole2[k] = v f.close() print pole1 print pole2 print pole1['AAA'] print pole2['AAA'] print repr(pole2['AAA']) --- Když jsem do uvedených souborů uložil ty udané řádky, vypisuje to tohle: C:tmp___pythonStonepy.czpython a.py 'AAA' 'BBB=CCC=DDD=EEE' 'AAA' 'FFF=GGG=HHH' {'AAA': 'BBB=CCC=DDD=EEE'} {'AAA': 'FFF=GGG=HHH'} BBB=CCC=DDD=EEE FFF=GGG=HHH 'FFF=GGG=HHH' Petr __ Od: Stone phrac...@gmail.com Komu: python@py.cz Datum: 31.03.2011 09:35 Předmět: [python] Jaky zpusobem ukladat data do pole Ahoj vsichni, jsem zacatecnik v Pythonu. Delam v nem asi 4 mesice. Mam jeden dotaz. V konfiguracnim souboru trace.data mam nasledujici radky: AAA=BBB=CCC=DDD=EEE v dalsim kofiguracnim souboru jako trace.cfg man tyto radky: AAA=FFF=GGG=HHH V perlu jsem to delal pomoci Hashe. Existuje neco podobneho v Python? Perl se mi uz prestal libit. Jak by se dala testovat jestli dotycna hodnota existuje? Predpokladal bych neco jako: pole1{AAA}=BBB=CCC=DDD=EEE pole2{AAA}=FFF=GGG=HHH Diky predem Petr ___ 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] Jaky zpusobem ukladat data do pole
Martin Kubát napsal... nevim přesně co potřebuješ, ale možná Ti pomůže todle: slovnik = {a:AAA, b:BBB, c:CCC} slovnik.has_key(a) # True slovnik.has_key(c) # True slovnik.has_key(x) # False Metoda slovníku .has_key() je zastaralá a měla by se dávat přednost operátoru in. Takže: 'a' in slovnik # True c in slovnik # True 'x' in slovnik # False Apostrofy nebo uvozovky jsou jako omezovače řetězcových literálů naprosto rovnocenné (musí být stejný na začátku a na konci). Petr P.S. Omlouvám se Stoneovi, že jsem v minulém dopise nepromázl mailovou adresu. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Překlad knihy Dive into Python 3
Tušil jsem to. Škoda. Dík za info, Petr __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 28.03.2011 10:38 Předmět: Re: [python] Překlad knihy Dive into Python 3 Ahoj, jak jsem se tak díval, tak to vypadá úplně stejně, ale je to na první pohled. Musím říct, že sazba se mi nelíbí. Jako by na to najali nějakého experimentátora, který si rád hraje a uživatelské blaho ho příliš nezajímá. - příliš malá písmenka - příliš dlouhé řádky - příliš malé okraje - nadpisy stejným typem písma jako text (plus podtržení, to by mne zajímalo, kdo na to přišel) - programy na stejné úrovni jako text (já osobně bych příklady trochu zanořil) + pěkný bílý papír To jsou mé postřehy po prvním prolistování. David Petr Přikryl píše v St 16. 03. 2011 v 20:26 +0100: Jen mě zajímá, jak ta sazba dopadla. Nic víc. Díky ;) P. __ Od: rain...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 20:23 Předmět: Re: [python]Překlad knihy Dive into Python 3 zatim ne, ale chystam se knihu takto sponzorovat v ramci firmy :). Mate na mysli neco konkretniho ? Dne uživatel Petr Přikryl prik...@atlas.cz napsal: Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ 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 ___ Python
[python] Vylepšení stránek py.cz
Možná by to chtělo vylepšit nebo připomenout takovou drobnost... Už se zase neumím přihlásit, pokud bych chtěl něco editovat. Buď jsem slepý, nebo to není moc intuitivní (obojí je možné ;) P. __ Od: Michal Molhanec mol-pyt...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 08.03.2011 19:21 Předmět: Re: [python] omezeni globalniho slovniku Něco mi uniká? Články na py.cz jsou, wiki je to celý, na mail archív se dostanu z titulní stránky na dvě kliknutí. Design by mohl být lepší, ale kvůli tomu není potřeba měnit platformu. Problém přece není v technologii, ale v tom, kdo ty články bude psát. Proč je nikdo nepíše dneska? Jak donutíte lidi, aby je psali, když přejdete na CMS? Jestli vám přijde nepřehledná titulní stránka nebo struktura současného py.cz, tak to lze přece změnit. Dne 8.3.2011 17:52, Visgean Skeloru napsal(a): Zdravím, jak přesně je to míněno? py.cz http://py.cz by dle mého potřebovala nový portál, s články, wiki systémem, lehce přístupným mail archívem a nějakým novodobým designem... Šel by do toho někdo? Osobně mám velice malé zkušenosti s web designem ale trochu djanga zvládnu, chtělo by to více lidí... Měl by ještě někdo zájem přetvořit py.cz http://py.cz (ač nevím jak moc mám pravomoc podobnou možnost nabízet :) ) 2011/3/6 g...@post.cz mailto:g...@post.cz Visgean Skeloru napsal(a), dne 4.3.2011 19:26: Taky mam pocit že každý týden je tu jeden mail na téma: jak použít exec/eval, možná by to chtělo založit nějaké FAQ kde by bylo vyloženě napsáno ať to dělají jinak, nebo rovnou odkazovat na starší vlákna... btw: v souvislost s tím by možná nebylo na škodu opravit py.cz http://py.cz http://py.cz máš možnost ;-) ___ Python mailing list Python@py.cz mailto:Python@py.cz http://www.py.cz/mailman/listinfo/python -- PGP pub key: http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com http://www.abclinuxu.cz/lide/visgean/gpg A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92 Jabber: visg...@jabber.org mailto:visg...@jabber.org | visg...@jabber.cz mailto:visg...@jabber.cz Github: http://github.com/Visgean ___ 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] Vylepšení stránek py.cz
To jsem zkoušel a nezabralo to. Asi to vyžadovalo zavření stránky prohlížeče. Teď jsem se tam doklikal znovu a fungovalo to samo od sebe. ;) Dík, P. __ Od: g...@post.cz Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 14:41 Předmět: Re: [python] Vylepšení stránek py.cz Pokud ti to píše: Not permitted Sorry, you need more identification to do that on this wiki. Perhaps you need to set a username in options or log in ? tak bys asi měl kliknout na ten jediný odkaz, co tam je, vyplnit dvě věci, save a mělo by to jet. ;-) P. Petr Přikryl napsal(a), dne 16.3.2011 14:35: Možná by to chtělo vylepšit nebo připomenout takovou drobnost... Už se zase neumím přihlásit, pokud bych chtěl něco editovat. Buď jsem slepý, nebo to není moc intuitivní (obojí je možné ;) P. __ Od: Michal Molhanec mol-pyt...@seznam.cz Komu: Konference PyCZ python@py.cz Datum: 08.03.2011 19:21 Předmět: Re: [python] omezeni globalniho slovniku Něco mi uniká? Články na py.cz jsou, wiki je to celý, na mail archív se dostanu z titulní stránky na dvě kliknutí. Design by mohl být lepší, ale kvůli tomu není potřeba měnit platformu. Problém přece není v technologii, ale v tom, kdo ty články bude psát. Proč je nikdo nepíše dneska? Jak donutíte lidi, aby je psali, když přejdete na CMS? Jestli vám přijde nepřehledná titulní stránka nebo struktura současného py.cz, tak to lze přece změnit. Dne 8.3.2011 17:52, Visgean Skeloru napsal(a): Zdravím, jak přesně je to míněno? py.cz http://py.cz by dle mého potřebovala nový portál, s články, wiki systémem, lehce přístupným mail archívem a nějakým novodobým designem... Šel by do toho někdo? Osobně mám velice malé zkušenosti s web designem ale trochu djanga zvládnu, chtělo by to více lidí... Měl by ještě někdo zájem přetvořit py.cz http://py.cz (ač nevím jak moc mám pravomoc podobnou možnost nabízet :) ) 2011/3/6 g...@post.cz mailto:g...@post.cz Visgean Skeloru napsal(a), dne 4.3.2011 19:26: Taky mam pocit že každý týden je tu jeden mail na téma: jak použít exec/eval, možná by to chtělo založit nějaké FAQ kde by bylo vyloženě napsáno ať to dělají jinak, nebo rovnou odkazovat na starší vlákna... btw: v souvislost s tím by možná nebylo na škodu opravit py.cz http://py.cz http://py.cz máš možnost ;-) ___ Python mailing list Python@py.cz mailto:Python@py.cz http://www.py.cz/mailman/listinfo/python -- PGP pub key: http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com http://www.abclinuxu.cz/lide/visgean/gpg A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92 Jabber: visg...@jabber.org mailto:visg...@jabber.org | visg...@jabber.cz mailto:visg...@jabber.cz Github: http://github.com/Visgean ___ 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
[python] Překlad knihy Dive into Python 3
Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ 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] Django v TV :)
Piš s diakritikou, ať nezkresluješ smysl svých vět. Pro ostatní... tam nějaký ten Python taky vyŠkytne :))) P. __ Od: Jirka Vejrazka jirka.vejra...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 15.03.2011 20:17 Předmět: Re: [python] Django v TV :) Aha, tak to bude asi nějaký prequel/sequel k tomuto, ne? http://www.csfd.cz/film/30525-python/ Jak tak na to po ocku koukam (a zaroven se hrabu v ORM), tak se zda, ze se tam nejaky ten Python taky vyskytne :) Jirka ___ 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] Překlad knihy Dive into Python 3
Jen mě zajímá, jak ta sazba dopadla. Nic víc. Díky ;) P. __ Od: rain...@gmail.com Komu: Konference PyCZ python@py.cz Datum: 16.03.2011 20:23 Předmět: Re: [python]Překlad knihy Dive into Python 3 zatim ne, ale chystam se knihu takto sponzorovat v ramci firmy :). Mate na mysli neco konkretniho ? Dne uživatel Petr Přikryl prik...@atlas.cz napsal: Koupil jste si to někdo v papírové podobě? Zajímalo by mě, jestli se to shoduje se zveřejněným PDF (http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf), nebo jestli to ještě při sazbě nějak vylepšili. P. __ Od: David Rohleder da...@ics.muni.cz Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rain...@gmail.com píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, zspo Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ 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] (ne)logičnost .join() ?
Trochu popřehazuji pořadí... Radek rad...@gmail.com napsal... On 23 ún, 08:08, Petr Přikryl prik...@atlas.cz wrote: A co se týká volně rozhozených built-in funkcí, ono jich zase tak strašně moc není. Nezvyklé je to hlavně pro lidi, kteří pracovali v čistě OO jazyce, který funkce nepodporuje jo, asi tak nějak. Teď by bodl dokument: Jak zobjektit Python v místech kde se tomu brání, resp. kde to ještě nikdo neudělal. To je asi to nejtrefnější: Přesně v místech kdy Python nesleduje objektové principy to bolí, a strašně. Ono je trošku problematické říci, že Python nesleduje objektové principy. V Pythonu je totiž objektem všechno. Podle mého názoru dogma čistě objektového přístupu, kdy je veškerá funkčnost realizována metodami objektů, neodpovídá realitě, která nás obklopuje. Neodpovídá ani matematickým abstrakcím, které nás obklopují od základní školy. Pokud vás tedy něco strašně bolí, pak je to porušení oněch dogmat, které byste si přál bezhlavě následovat. Metody tříd jsou formálním způsobem popisu chování objektů dané třídy. Vychází se z poznatku, že při formálním zápisu transformace vnitřního stavu objektu uděláme méně chyb, když popis spojíme s abstrakcí objektu dané třídy. Vychází to ze zkušenosti, že například v určitém kontextu se celé číslo musí chápat jako letopočet a ne jako počet kusů něčeho nebo jako zcela abstraktní číslo. Až potud nelze nic namítat. Existují ale situace, kdy chceme s určitou hodnotou pracovat jako s velmi abstraktní hodnotou -- jaksi bez kontextu --, kdy jí chceme interpretaci přidělit až v okamžiku zpracování. Dám příklad. Mnohé reálné objekty lze v určitých situacích popsat vektorem v trojrozměrném prostoru. Přirozeným způsobem můžeme dojít k nějakému dejme tomu geometrickému úhlu, který je prostě úhlem bez bližší vazby na konkrétní objekt. Dejme tomu, že na daný úhel potřebujeme aplikovat to, čemu od základní školy říkáme funkce sinus. V takové situaci je velmi obtížné považovat zápis objekt.vektor.úhel.sin() za přirozené vyjádření toho, co nás u onoho úhlu daného objektu zajímá. Mnohem přirozenější pro nás je zápis, kdy se úhel stane argumentem obecné funkce sin(). Každý má jiný pohled na věc a jiná očekávání. Podle mého názoru je přístup typu ','.join(kontejner) možná na první pohled nezvyklý, ale na druhý pohled je velmi logický. Jde o to, že dokáže spojit zadaným řetězcem prvky dodané jakýmkoliv kontejnerem, který podporuje iteraci a který vrací řetězcové prvky. Zajisté, pro implemetátora má smysl to definovat na jednom místě. Takže by byl dobrý mixin nebo třída která implementuje metody nad iterabilními kontejnery, a ty iterabilní kontejnery podědí nebo si ty metody mixnou. Tohle je jen technický detail, který umožní svázat nějakou operaci s nějakou třídou objektu. Pořád bychom si měli uvědomovat, že tečková notace používaná u OO jazyků je pouze notací, která má usnadnit vnímání náležitosti metod k objektům. Taková notace je přínosná v situacích, kdy máme pocit, že je její přínos přirozený. Tím mám na mysli to, že zápis pokud možno snadno pochopí i ten (se stručným návodem), kdo takový zápis vidí poprvé. Ale když pracujete tak chcete psat něco jako neco.jeho_kolekce.transform.sort.jeste_transform.join Tohle považuji za poměrně nešťastné v jakémkoliv OO jazyce. Přesněji, netýká se to jazyka, ale jeho používání. Nezávisle na tom, zda se jedná o reference nebo ukazatele... Pokud má transformace join probíhat na konci uvedeného řetězu, pak musí být zajištěno, že předchozí transformace nějak neselžou. To z hlediska robustnosti kódu nemusí být tak samozřejmé. a nemáte chuť psát join(neco.jeho_kolekce.transform.sort.jeste_transform) Tady je potřeba si uvědomit, že metoda str.join(), o které se tady bavíme, je velmi specifická v tom smyslu, že jde o metodu, která má spojovat několik podřetězců do jednoho řetězce. Je tedy specifická v tom, že pracuje nad řetězci ve velmi abstraktní podobě a že výsledkem je zase čistý řetězec. V souvislosti s výše uvedeným příkladem úhlu a funkce sinus je to něco podobného. obzvláště když ten řetězec chcete na tečce dále zpracovávat. neco.jeho_kolekce.transform.sort.jeste_transform .join.strip.jiny_transform.split Přehlédl jste ale jeden detail. Na začátku celé transformace vystupuje objekt nějakého typu, který se postupně transformuje do kolekce řetězců. Potom následuje změna velmi specifické kolekce řetězců na velmi abstraktní typ řetězec. Další operace probíhají nad abstraktním řetězcem. když to pak přepíšete do závorkové notace, tak je to nečitelné, protože v závorkové notaci se píše doleva a v tečkové doprava. Pár takových závorek v tečkovaném výrazu a nevyzná se v tom ani zvíře které to má v popisu práce. Tohle není věc tečkové/závorkové notace. To je věc přehledného zápisu programu. A nebo jinak. Kolikrát v životě jste potřebovali aplikovat join na řetězec v tečce? Já si nepamatuju jediný případ. Osobně mi kroutí mozkem vyjádření aplikovat join na řetězec v tečce
Re: [python] Kniha dive into python3
No, taky jsem byl zvědavý. Představoval jsem si, že by ta sazba mohla dopadnout líp :( Tak snad se vám bude líbit aspoň ten věcný obsah. P. __ Od: David Rohleder Komu: Konference PyCZ python@py.cz Datum: 21.02.2011 11:57 Předmět: Re: [python] Fwd: [CZ.NIC #107337] kniha dive into python3 Super, ještě přidám odkaz: http://knihy.nic.cz/ jsem moc zvědavý, jak to dopadlo. D. rainbof píše v Po 21. 02. 2011 v 10:33 +: Viola... -- Přeposlaná zpráva -- Od: Zuzana Pochopová via RT podp...@nic.cz Datum: Předmět: [CZ.NIC #107337] kniha dive into python3 Komu: rain...@gmail.com Kopie: Vazeny zakazniku, kniha Dive into python dnes prave vysla a jeji prodej bude zahajen behem dneska ci zitrka. S pozdravem -- Zuzana Pochopova supervizor zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- T +420 222 745 126 +420 222 745 111 F +420 222 745 112 e-mail : zuzana.pochop...@nic.cz www.nic.cz -- www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 19:59:33, dstrakova napsal(a): Vazeny pane Rainbofe, Vase zprava byla prijata pracovnikem zakaznicke podpory a predana kompetentni osobe k vyrizeni v pondeli 21.02.2011. Vyckejte prosim odpovedi. Dekujeme Vam za pochopeni a jsme s pozdravem -- Darina Strakova specialista zakaznicke podpory CZ.NIC, z. s. p. o. Americka 23, 120 00 Praha 2 -- Tel.: +420 222 745 102 +420 222 745 111 Fax: +420 222 745 112 E-mail: darina.strak...@nic.cz www.nic.cz www.mojeID.cz - vaše bezpečná webová identita Dne So 19.úno.2011 09:59:02, rain...@gmail.com napsal(a): Dobrý den, sledoval jsem loni překlad knihy dive into python http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive- into- python-3/ktera ceka na vydani prave ve vasi edici chtel bych se zeptat jak to vypada s jejim vydanim. ___ 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] Nefunguje mailman?
Ahoj všeci, Ptal se mě kolega, jak se odhlásit z python@py.cz (má to komplikovanější). Nedokázal jsem mu poradit, protože http://www.py.cz/mailman/listinfo/python nějak nefunguje. (404, Nastala chyba DNS. Server nenalezen. Odkaz může být nefunkční... a takové ty kecy.) Můžete se na to někdo mrknout? Díky, P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] (ne)logičnost .join() ?
Něco jak seznam.join(','). Tohle je naštěstí tak profláknuté, že už jsem si zapamatoval že v Pythonu je join metoda toho ',' a ne toho pole. Tak nie som jedný, komu sa zdá, že to má Python opačne. :-) já jsem stráášně rozmlsaný z Ruby kde všechno má svou logiku. Po nějaké chvíli člověk začne psát příkazy/metody intuitivně bez konzultace s dokumentací a všechno funguje. Každý má jiný pohled na věc a jiná očekávání. Podle mého názoru je přístup typu ','.join(kontejner) možná na první pohled nezvyklý, ale na druhý pohled je velmi logický. Jde o to, že dokáže spojit zadaným řetězcem prvky dodané jakýmkoliv kontejnerem, který podporuje iteraci a který vrací řetězcové prvky. A co se týká volně rozhozených built-in funkcí, ono jich zase tak strašně moc není. Nezvyklé je to hlavně pro lidi, kteří pracovali v čistě OO jazyce, který funkce nepodporuje. Viz tady http://docs.python.org/library/functions.html P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] xml.etree.ElementTree a parsovani souboru s namespace.
Doporučuji přečíst kapitolu 12 z Dive Into Python 3, konkrétně 12.4. Parsing XML http://diveintopython3.org/xml.html#xml-parse 12.5. Searching for nodes within an XML document a konečně 12.6. Going further with LXML (plná podpora XPath 1.0). Petr __ Od: M.B. Komu: python@py.cz Datum: 20.12.2010 22:31 Předmět: [python] xml.etree.ElementTree a parsovani souboru s namespace. Zdravím, Začal jsem z nudy přepisovat starší Gtk programy s pomoci GObject Introspection. Jsem ale líný hledat neustále v XML souborech tak jsem si chtěl napsat jednoduchý skript na vyparsování informací do nějakého mě příjemnějšího formátu.Bohužel jsem XML soubory parsoval jen zřídka a tyhle namespaces mi dělají potíže. Nemůžu z nich nic dostat. Př: --- #encoding: utf-8 from xml.etree import ElementTree as XML root = XML.parse('/usr/share/gir-1.0/Avahi-0.6.gir').getroot() print root def normalize(name): if name[0] == '{': uri, tag = name[1:].split('}') return uri, tag else: return name namespace = normalize(root.tag)[0] print namespace clases = root.findall('{' + namespace + '}' + 'namespace/class') print clases Prosil bych o nějaké nakopnutí správným směrem. Díky. ___ 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í proměnných
Tady je trošku problém, že není jasné, co se tím vlastně myslí. Co se myslí zápisem x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} Je to jen symbolické? Jsou p1, p2, ... pn řetězce, které vyjadřují jména chtěných proměnných? V Pythonu je každá proměnná pouze beztypovou nepojmenovanou referencí na cílový objekt. Ta reference je vložena do některého ze systémových slovníků, přes které je spojena s nějakým jménem. Takže jedna odpověď by mohla vypadat takto: p1, p2, p3 = h1, h2, h3 Ale p1, p2, p3, ... nelze zachytit do jiné struktury jménem jinak, než že se uloží řetězcová jména proměnných. V opačném případě jsou ve struktuře uložené jen ty reference, které se shodují s těmi, které se pamatují pro jména p1,... Ale reference uložená v jiné struktuře nemá žádnou přímou vazbu na jméno proměnné. Chtělo by to uvést kontext, v jakém to řešíš. Petr __ Od: Ing. Vladislav Ludík Komu: Konference PyCZ Datum: 21.12.2010 00:45 Předmět: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ 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] co se stalo s Dive into python ?
Byl to Jiří Znamenáček? __ Od: Jakub Vysoky Komu: Konference PyCZ Datum: 16.12.2010 08:54 Předmět: Re: [python] co se stalo s Dive into python ? tuhle prvni stredu v mesici na srazu pratel dynamickych jazyku rikal jeden z prichozich (ktery ma zrejme s temito veci v nic.cz neco spolecneho), ze by kniha mela byt brzo vydana. ale bohuzel o terminu take nic nevim. muzu se zkusit pozeptat.. 2010/12/16 Petr Přikryl : Překlad jsem odevzdal asi v půlce července. Pokud vím, probíhá sazba, ale to už jde úplně mimo mě a netuším v jakém je to stavu ani jakou to bude mít podobu. Neznám ani temín vydání. Elektronická podoba bude zveřejněna nejspíš až po vydání papírové knihy. V podstatě se mi podařilo dosáhnout stejné formy, jako u originálu (HTML i PDF přes Prince). Tuto formu ale nepovažuji za vhodnou pro přímý tisk knihy. Navrhuji zeptat se prostřednictvím http://knihy.nic.cz/ -- vpravo nahoře najdete: Pište pro edici Pokud máte připravené texty nebo se chystáte odbornou knihu napsat, a chtěli byste na jejím vydání spolupracovat, obraťte se na nás na e-mailové adrese kont...@nic.cz; do předmětu zprávy uveďte heslo knihy.nic.cz. Odkažte se, že reagujete na http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive-into-python-3/ a zeptejte se na termín. Měj se fajn a přeju krásné svátky, Petr __ Od: Ondrej Beranek Komu: Konference PyCZ Datum: 16.12.2010 08:11 Předmět: [python] co se stalo s Dive into python ? Ahoj chtěl bych se zeptat jako to s touhle knihou dopadlo ? je hotova ? da se koupit ? stahnout ? rad bych si ji nechal dat k vanocum :D ___ 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 -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com icq: 109248375 twit: https://twitter.com/kvbik ___ 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] co se stalo s Dive into python ?
Překlad jsem odevzdal asi v půlce července. Pokud vím, probíhá sazba, ale to už jde úplně mimo mě a netuším v jakém je to stavu ani jakou to bude mít podobu. Neznám ani temín vydání. Elektronická podoba bude zveřejněna nejspíš až po vydání papírové knihy. V podstatě se mi podařilo dosáhnout stejné formy, jako u originálu (HTML i PDF přes Prince). Tuto formu ale nepovažuji za vhodnou pro přímý tisk knihy. Navrhuji zeptat se prostřednictvím http://knihy.nic.cz/ -- vpravo nahoře najdete: Pište pro edici Pokud máte připravené texty nebo se chystáte odbornou knihu napsat, a chtěli byste na jejím vydání spolupracovat, obraťte se na nás na e-mailové adrese kont...@nic.cz; do předmětu zprávy uveďte heslo „knihy.nic.cz“. Odkažte se, že reagujete na http://blog.nic.cz/2010/03/25/pomozte-nam-s-prekladem-knihy-dive-into-python-3/ a zeptejte se na termín. Měj se fajn a přeju krásné svátky, Petr __ Od: Ondrej Beranek Komu: Konference PyCZ Datum: 16.12.2010 08:11 Předmět: [python] co se stalo s Dive into python ? Ahoj chtěl bych se zeptat jako to s touhle knihou dopadlo ? je hotova ? da se koupit ? stahnout ? rad bych si ji nechal dat k vanocum :D ___ 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] Generator prvku ridke matice (bylo ... nechtene propojeni mnozin)
Pro Python 2.x by se to dalo ještě upravit (viz dole). Jirka Vejrazka napsal for i in [(a,b) for a in range(1,10,2) for b in range(5,20,5)]: Kdyz tady pouzijes na krajich kulate zavorky misto hranatych, tak se to nevyrobi cele v pameti, ale vznikne generator, ktery se pak da pouzit uplne stejne pro for cyklus: Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. | x = [(a,b) for a in range(1,10,2) for b in range(5,20,5)] | x | [(1, 5), (1, 10), (1, 15), (3, 5), (3, 10), (3, 15), (5, 5), (5, 10), (5, 15), | | x = ((a,b) for a in range(1,10,2) for b in range(5,20,5)) | x | a.py == g = ((a,b) for a in xrange(1,10,2) for b in xrange(5,20,5)) def genFunc(x, y): for a in xrange(1, x, 2): for b in xrange(5, y, 5): yield (a, b) for t in g: print t, print print '-' * 60 for t in genFunc(10, 20): print t, == Místo range() použij xrange() -- i když tady ta úspora je maličká (jen z principu). To je ten generátor přiřazený do g -- jak ukazoval Jirka. Generátorová funkce genFunc vrátí stejný generátor. Je to jiné jen syntakticky. Tady jsou navíc doplněny jen parametry, aby se to dalo použít pro různé hodnoty x a y a nemuselo se to furt opisovat. Zavoláním genFunc vznikne podobný generátor, jako g. U mě to zobrazí následující: == C:tmppython a.py (1, 5) (1, 10) (1, 15) (3, 5) (3, 10) (3, 15) (5, 5) (5, 10) (5, 15) (7, 5) (7, 10) (7, 15) (9, 5) (9, 10) (9, 15) (1, 5) (1, 10) (1, 15) (3, 5) (3, 10) (3, 15) (5, 5) (5, 10) (5, 15) (7, 5) (7, 10) (7, 15) (9, 5) (9, 10) (9, 15) == Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] jmeno pro [neco for neco] (bylo nechtene propojeni mnozin)
MICHÁLEK Jan Mgr. napsal [...] Jde tedy to nějak vymyslet, abych udělal ten generátor, kterej si bude pamatovat jen aktuální hodnoty x a y, aniž bych musel použít smyčku?? Ta věc [něco for něco] (menuje se to generátor pole??) Anglicky se to jmenuje list comprehension, čili skládač seznamu. V překladu Dive Into Python 3 jsem ve spolupráci se zdejšími borci dospěl k českému... 5.3 GENERÁTOROVÁ NOTACE SEZNAMU Generátorová notace seznamu (anglicky list comprehension [list komprihenšn]) umožňuje stručný zápis vytvoření seznamu z jiného seznamu aplikováním funkce na všechny prvky zdrojového seznamu. (Poznámka překladatele: Pojem „list comprehension“ je znám z deklarativních jazyků a má charakter syntaktické konstrukce. V jazyce Python se „vnitřku“ deklarativního zápisu podobá generátorový výraz. Tímto způsobem byl odvozen český pojem „generátorová notace“. Někdy je pojem „list comprehension“ použit v procedurálním, dynamickém smyslu. V takové situaci můžeme uvažovat o pojmu „generátor seznamu“. Pokud se bavíme o jeho výsledku, můžeme uvažovat i o pojmu „generovaný seznam“. Vzhledem k tomu, že zavedený český pojem pro tuto konstrukci asi neexistuje — studentům příslušných oborů vysokých škol přijde po krátké chvíli anglický pojem srozumitelný —, budu volněji používat některou z uvedených variant. Někdy budu poněkud dlouhý pojem „generátorová notace seznamu“ zkracovat. Kritériem volby bude dobrá srozumitelnost.) Podobně existuje dictionary comprehension a set comprehension. Nebo to jde nějak občůrat (například použít místo range() generátor)?? Už jsem to posílal jako reakci na odpověď Jirky, ale ono Ctrl-V zase tolik práce nedá ;) g = ((a,b) for a in xrange(1,10,2) for b in xrange(5,20,5)) def genFunc(x, y): for a in xrange(1, x, 2): for b in xrange(5, y, 5): yield (a, b) for t in g: print t, print print '-' * 60 for t in genFunc(10, 20): print t, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] nechtene propojeni mnozin
Hynek Fabian napsal... Pol, Leos (Thursday 14 October 2010 12:56:13): Fuj, takhle pisou ceckari :-) R0 = list(range(8)) Fuj, proc z listu znova delat list ;-) Protoze jsem se kdysi davno nekde docetl o planech sloucit range() a xrange(), a zvykl jsem si v ramci dopredny kompatiblility explicitne si delat list tam kde chci vic nez jen iterovat pres generator. Plany byly bud zavrzeny nebo uplne blby, nevim, ale zvyk mi uz zustal. A ted me omluvte, jdu se stydet do kouta. Není zač se stydět. V Pythonu 3 to tak skutečně je. Funkce range() je generátorová funkce a samo to seznam neudělá. P. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] issue a spol.
Zdravím, Poraďte mi prosím, jak přeložit sousloví issue tracker. Bude to něco jako seznam problémů. Máme český adekvát? Překládám teď Producing Open Source Software http://producingoss.com/ a tam se zas vyskytuje bug tracker s tím, že mnohdy ty nástroje splývají. Přeložil jsem to zatím jako systém pro sledování chyb s uvedením bug tracker v závorce. Slovo issue tady asi znamená problém, ale jistý si tím nejsem. Jsem toho názoru, že tyhle věci čtou lidi, kteří aspoň tuší, o co jde. Issue tracker se tam asi taky nebude vyskytovat mnohokrát. Pokud ten překlad není úplně ujetý a sem tam se do závorky (podle uvážení) uvede anglický originál, asi ti nikdo nadávat nebude. Ještě mě napadlo: Jak to dopadlo s překladem Dive into Python 3, lze jej někde číst? Je to přeložené už skoro čtvrt roku, ale zatím to není dostupné. Sází se to a bude to k dispozici v PDF. Už je to mimo moje ruce, takže s tím víc neudělám. Měj se, Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python