Re: [python] [django-cs] async def django_sraz_109():

2020-04-15 Tema obsahu Honza Král
komplet link s heslem:

https://pantheon.zoom.us/j/94879518091?pwd=K0V1RDZRcEcyU3NHbTFPTEJGVG8ydz09



On Wed, Apr 15, 2020 at 6:43 PM Jirka Vejrazka 
wrote:

> Zoom pass: 109 109
>>
>
> To tvrdis ty, ale Zoom si to nemysli ;-)
>
> --
> --
> E-mailová skupina django...@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny,
> zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/CAFhEBEADdXPGBafv9tUbohqxrnzUOzYD9_4HcVxWf_nTLMDPRA%40mail.gmail.com
> 
> .
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Vyhodnocení jednoduchých výrazů

2018-08-22 Tema obsahu Honza Král
dobra sada odpovedi je k videni na
https://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string

me se tam nejvic libi reseni s AST


On Wed, Aug 22, 2018 at 11:16 AM starenka .  wrote:

> Zalezi na slozitosti vyrazu, ale obcas staci dobrej regular a namapovat
> operatory na operator.*
>
> Tady sem to ukazoval na LT na pyvu
> https://github.com/aleszoulek/pyvo-stdlib-gems-notebooks/blob/master/04_starenka_heges.ipynb
>
> -
> 'aknerats'[::-1]
>
> On Wed, Aug 22, 2018, 11:12 Petr Viktorin  wrote:
>
>> On 08/22/18 09:30, Petr Blahos wrote:
>> > Přátelé,
>> >
>> > doporučíte mi někdo knihovnu pro vyhodnocení jednoduchých matemetických
>> > výrazů se symboly? Představuju si to asi takto: Budu mít text typu:
>> > expr = """R=1000*(VAR1+VAR2/2)-VAR3"""
>> >
>> > a pak udělám:
>> > result = knihovna.funkce(expr, {"VAR1": 54, "VAR2": 8", "VAR3": 982})
>> >
>> > Případně ještě knihovna.zkontroluj_vyraz(expr).
>> > Potřebuju tam opravdu jenom + - * / a závorky.
>>
>> Ahoj,
>>
>> tl;dr: použij pyparsing, viz:
>> https://github.com/pyparsing/pyparsing/blob/master/examples/fourFn.py
>>
>>
>> Delší odpověď:
>> Vidím tři hlavní možnosti.
>>
>> 1. Pokud věříš uživatelům (např. píšeš to pro sebe), dej jim prostě k
>> dispozici celý Python. V budoucnu ti poděkují.
>> Nevýhoda je že jde napsat výraz který ti např. zformátuje disk...
>> Můžeš použít eval(), která vyhodnotí jeden výraz, nebo možná lépe exec()
>> na sadu příkazů.
>>
>>  >>> namespace = {"VAR1": 54, "VAR2": 8, "VAR3": 982}
>>  >>> expr = """R=1000*(VAR1+VAR2/2)-VAR3"""
>>  >>> exec(expr, namespace)
>>  >>> namespace["R"]
>> 57018.0
>>
>>
>> 2: Často uvidíš lidi používat či doporučovat compile() nebo modul `ast`.
>> Doporučuju se jim vyvarovat: jsou to implementační detaily vázané na
>> konkrétní verzi CPythonu. Až vyjde nový Python, takový kód může rozbít,
>> a za dva roky budeš těžko mít náladu a čas to opravit (nemluvě o
>> udržování a testování kompatibility s dnešní verzí).
>> Tyhle věci jsou dobré na studium toho, jak Python uvnitř funguje, ne na
>> implementaci kalkulačky.
>>
>>
>> 3. Napiš parser. Doporučuju vybrat nějakou udržovanou knihovnu, spíš než
>> vzít z internetu něčí úkol do hodiny algoritmů :)
>> Pyparsing není ideální (co je?), ale funguje a kalkulačku má jako ukázku
>> použití.
>> ___
>> 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] :-)

2018-04-17 Tema obsahu Honza Král
Tady se slusi upozornit na nekolik veci:

neznam zadny team python programatoru kde by konstrukce spolehajici se
na pristup do retezce na zaklade bool hodnoty prosla code review, ja
to videt v nejakem projektu tak okamzite otviram ticket protoze to se
proste nedela, je to necitelne.

Testovani na pritomnost '?' v URL neni zadna zaruka niceho, muze se to
rozbit na spoustu zpusobu, napriklad:


http://user:he?slo@localhost:80

https://server.com#whatever?and_anything_else


A ne, u zadneho code review bych nepripustil argument, ze "to se u
nasich url stat nemuze". Kod ktery se spoleha na special cases je
spatne, o tom nemuze byt diskuze.

Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2018-04-17 11:02 GMT+02:00 Vláďa Macek <ma...@sandbox.cz>:
> Banalita to rozhodně je. :-)
>
> Ano, svým způsobem to je ekvilibristika, ale založená na pevných a
> jednoduchých pravidlech Pythonu. Hodí se to znát, třeba už jen pro případ
> čtení cizího kódu. Zajímavé na tom je, že na rozdíl od použití složitější
> funkce jako urlparse je výraz 'xy'[somebool] zcela safe, řízení zůstává u mě
> jako u programátora. Je to o přístupu.
>
> Taky je fakt, že rozdělení na dva řádky by nikoho nezabilo a umožní bool
> podmínku popsat identifikátorem. Řešení Petra Blahoše se mi líbí.
>
> Čitelnost toho příkazu zhoršuje už samotné reload_redirect['Location'],
> které máme v některých případech vnucené. Jindy ne. Osobně nemám rád hranaté
> závorky. Když to jde, tak i na "indexaci" slovníku používám AttrDict. Asi
> bych nakonec vybral řešení
>
> reload_redirect['Location'] += '=1' if '?' in
> reload_redirect['Location'] else '?param=1'
>
> i přes mírné porušení DRY: Volil bych zřejmě jinak v případě, že by nešlo o
> jediný výskyt v projektu a navíc s pevným stringem.
>
> Všichni jsme nadšenci. :-) Děkuju za obohacení.
>
> V.
>
>
> On 15.4.2018 10:16, Petr Messner wrote:
>
> Pro programátora by tohle mělo být čitelné, ale musel jsem se na to pár
> sekund dívat, než jsem si všiml, o co jde. Klíčové je asi uvědomit si, že
> False se chová jako 0 a True jako 1. Dokonce True + True == 2. Pro lidi
> přicházející z C je toto očekávatelné, ale ostatní tohle nemusejí vědět. V
> mých/našich zdrojových kódech bych tohle mít nechtěl.
>
> Asi bych s pojmy typu "opravdový pythonista" nebo "opravdový kód" raději
> vůbec nepracoval. Zrovna Python je jazyk, který má být jednoduchý a
> přístupný pro kohokoliv, i pro skoro-neprogramátory. Na
> https://www.python.org/about/ stojí "is friendly & easy to learn", tak se
> tím můžeme inspirovat a nevymýšlet blbosti :)
>
> Podle mě je celé tohle banalita. Ale jestli to u někoho spouští impostor
> syndrom, tak je to špatný a zbytečný.
>
> PM
>
> Dne 15. dubna 2018 9:30 Jaroslav Vysoký <jaroslav.vys...@gmail.com>
> napsal(a):
>>
>> Nejsem python profesionál, pouze (snad) nadšenec a propagátor, ale fakt by
>> mě zajímalo, jestli je tohle "opravdovými" pythonisty považováno za čitelné.
>> Já jsem to sice nakonec pochopil, a kdyby se podobné konstrukce vyskytovaly
>> v kódu častěji, tak bych si na to jistě i zvykl, ale na první pohled mi to
>> přijde jako ekvilibristika.
>>
>> Jarda V.
>>
>>
>> Dne 14. dubna 2018 21:50 Vláďa Macek <ma...@sandbox.cz> napsal(a):
>>
>>> Děkuju všem reagujícím. :-)
>>>
>>> Taky bych asi v tomto případě neparsoval a nedělal funkci, pokud je to
>>> jednoúčelový řádek s fixním parametrem a je to v projektu jednou.
>>>
>>> Tohle mám za docela čitelný:
>>>
>>> reload_redirect['Location'] += '?&'['?' in reload_redirect['Location']] +
>>> 'param=1'
>>>
>>> Hezký večer,
>>>
>>> V.
>>>
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>
>>
>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
>
> --
> Vláďa Macek | +420 608 978 164 | Please consider printing this message.
>
> Aktuální nabídka: Školení Python+Django v Liberci
> https://www.scripteo.cz/skoleni/skoleni-python-a-django.html
>
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] par dotazu od zacatecnika v SQL

2017-12-27 Tema obsahu Honza Král
Jedine omezeni SQLite je, ze nema dobrou story kolem konkurentniho pristupu
vice uzivatelu. Pro spoustu aplikaci je to samozrejme problem ale pro
stejne velkou spoustu to neni zadny problem.

Vubec to nema nic spolecneho s tim zda to je "databazova" aplikace ci ne.
Skutecne to neni hracka a bezi na ni neuveritelne spousta technologii.


On Dec 27, 2017 17:05, "Matěj Cepl"  wrote:

On 2017-12-27, 16:47 GMT, Vláďa Macek wrote:
> Take neni spravne oznacit SQLite za hracku. Je to spickovy
> profesionalni software vhodny pro produkcni nasazeni tam, kde
> je to vhodne.

To myslím lze. Tedy lze říci, že z hlediska SQL databází to
hračka je. Dlužno samozřejmě dodat, že autor SQLite to moc jako
opravdovou SQL databázi nemyslel (jako konkurenci opravdových
RDBMS jako OracleDB, PostgreSQL, DB/2), původním záměrem bylo
vytvořit sofistikovanější základ pro formát dat pro aplikace
nikoli opravdovou SQL relační databázi. Dává to smysl?

Což samozřejmě znamená, že pro některé (nedatabázové) aplikace
je SQLite mnohem vhodnější (také je asi nejužívanějším SQL
interpretem na světě, není?), ERP systém pro nadnárodní
společnost bych nad SQLite mít nechtěl.

Hezký den,

Matěj
--
http://matej.ceplovi.cz/blog/, Jabber: mceplceplovi.cz
GPG Finger: 3C76 A027 CA45 AD70 98B5  BC1D 7920 5802 880B C9D8

As a rule of thumb, the more qualifiers there are before the name
of a country, the more corrupt the rulers. A country called The
Socialist People's Democratic Republic of X is probably the last
place in the world you'd want to live.
-- Paul Graham discussing (not only) Nigerian spam
   (http://www.paulgraham.com/spam.html)
___
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] Too much freedom?

2017-01-03 Tema obsahu Honza Král
Vezmu to poporade:

> Otázka. Obětovali byste některý z dynamických rysů pythonování výměnou třeba 
> za (hypotetické) zisky, jako aby mainstreamový interpret

> * se všem zrychlil v průměru o 15% či o 20%?

rozhodne ne, jak uz tu napsalo spoustu lidi jsou lepsi zpusoby jak
zrychlit kod v pythonu a vetsina pythoniho kodu neni zavisla na
rychlosti jazyka

>  * se dal kompilovat do efektivního nativního kódu?

opet argument ciste o rychlosti a odpoved je jeste rozhodnejsi ne
protoze nativni kod ma limitace ktere jsou jeste silnejsi nez by bylo
nutne obetovat pro zrychleni

>  * umožňoval výrazně lepší podporu automatické statické kontroly kódu?

za me opet ne - preferuji tu volnost a s ni spojenou rychlost vyvoje a
expresivitu kodu ktery minimalizuje nutnost automaticke staticke
kontroly kodu. V situacich, kde je to zadouci je to v pythonu mozne i
v soucasnosti externe skrze mypy a anotace a nevidim jediny duvod to
zabudovavat do pythonu direktivne misto anotaci.

>  * ...

tohle je pro me ta nejzajimavejsi otazka - hrozne casto se lide bouri
proti prilisne dynamicnosti nekterych jazyku a chteji to omezovat nebo
argumentuji, ze bez toho "to nejde", neni to vhodne pro velke projekty
a nebo to nikdy nebude dost rychle. A core team pythonu to vesele
ignoruje, dal zrychluje python a dela podporu tem obrovskym projektum
ktere v pythonu vesele existuji.

Tak nejak mi tam chybi ten dramaticky duvod k temto diskuzim. je to
vetsinou jen filozofovani u piva nad tim jak by nektere veci byly
jednodussi kdybychom meli staticke typovani nebo slozene zavorky ktere
zcela ignoruji celkovy design toho jazyka a ekosystemu.

Prijde mi to jako debata na tema jak by nakladaky byly o mnoho
rychlejsi a uspornejsi kdyby nemusely vozit ten otravny naklad.


> Nebo si to mám jednoznačně vyložit jako "svobodnou dynamičnost jazyka 
> neomezovat, protože zmíněný hypotetický zisky ve skutečnosti většina 
> nevyužije nebo je možné jich dosáhnout jinak"?

Nebo proste tak, ze ten jazyk tak, jak je navrzen, nedava smysl ve sve
staticke verzi a nelze polemizovat o jednotlivych featurach jazyka bez
kontextu toho k cemu byl zamyslen, jak se pouziva a jak vypada prace s
nim.

> Víte, mě se vždy líbila myšlenka RISC v obklopení bloatem CISC. Přemýšlím, 
> jestli Python trochu nezakopává o svojí nespoutanost ve chvíli, kdy záměrem 
> je psát v něm opravdu velký => konzistentní a stabilní systém. Vím, že se v
něm (úspěšně) píšou.

Ted je rada na me abych nerozumel - pisou se v nem velke uspesne
projekty a presto lide stale tvrdi, ze by se lepe psaly, kdyby byl
staticky typovany. Proc? Na zaklade ceho tohle rikas? Empiricky je
jasne videt, ze to prekazka neni tak proc se tohle vytahuje stale
dokola a proc je to brane jako OK navrhnout nazor ktery je v rozporu s
realitou a nepodlozit ho argumenty?

> Nemusíte mě nutně brát doslova, uvažuju.

Vim, ze to pises z pozice, ze o tom premyslis, ale i tam je potreba se
ptat proc - vsichni zname dost velkych projektu v pythonu a mnoho
neuspesnych projektu ve statickych jazycich. Evidentne to neni
podminka ani nutna, ani dostacujici.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2017-01-03 14:42 GMT+01:00 Pavel Řihošek <pavel.riho...@outlook.com>:
> Něco na způsob statické kontroly kódu už v pythonu existuje.
> Je to mypy, ve kterém se osobně angažuje Guido.
> http://mypy-lang.org/
> http://www.elfsternberg.com/2016/12/04/write-python-mypy/
>
> V Pythonu 3 koneckonců objevily typové anotace, které toto umožňují
> elegantněji než Python 2.7. To že o nich lidé
> buď neví, nebo jim nerozumí nebo bůhví proč je vlastně nepoužívají, je věc
> jiná. Kontrolu kódu umí i PyCharm.
> Dále, pokud si přečteš novinky v 3.6, pak se tam cosi o vylepšené podpoře
> JIT kompilátorů objevuje.
>
> http://www.infoworld.com/article/3149782/application-development/python-36-is-packed-with-goodness.html
>
> Mimochodem, Python jako takový je specifikace jazyka, nikoliv jeho
> implementace. CPython, který ty myslíš, je referenční implementace, nicméně
> existují i jiné jako Jython, PyPy, IronPython, které například nemají GIL a
> jsou tuším kompilované pro své virtuální stroje.
>
> GIL je kapitola sama pro sebe, k té se nechci vyjadřovat. Viděl jsem pitomě
> napsanou funkci, kterou autor demonstroval, že Python neumí paralélní
> výpočty. Doporučuji tento starý článek:
> https://jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/
>
>
> Co se týče rychlosti, tak Python podle Guida nikdy nekladl rychlost na první
> místo. Existuje NumPy, Cython, Numba, které toto řeší, pokud má člověk
> takovou potřebu.
> https://www.ibm.com/developerworks/community/blogs/jfp/entry/A_Comparison_Of_C_Julia_Python_Numba_Cython_Scipy_and_BLAS_on_LU_Factorization?lang=en
>
> 
> Od: Python <python-boun...@py.cz> za uživatele Vláďa Macek
&

Re: [python] Spojovani retezcu: (bylo: Rekurzivní generátor v Pythonu 3?)

2016-08-28 Tema obsahu Honza Král
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2016-08-28 17:40 GMT+02:00 Petr Messner <petr.mess...@gmail.com>:
> Díky Honzo za odkaz.
>
> Jinak - Python, Ruby, Java, C++, na jazyku nezáleží... Musím vědět, jestli 
> daná operace manipuluje s některým svým operandem, nebo vytváří novou 
> hodnotu. A protože jsou stringy v Pythonu immutable, tak jako programátor 
> bych měl tušit, že se bude kopírovat. A dát si pozor na případy, kdy se bude 
> kopírovat furt dokola.
>
> Že to pypy nějak umí optimalizovat je hezké, ale i kdybych ho používal, tak 
> fakt není dobré spoléhat se na to, že mi překladač opraví chybu v samotném 
> návrhu algoritmu.

stale plati, ze mnohem dulezitejsi nez kompilator je programator -
pouzivam tak to, co dava z hlediska kodu (nikoli kompilatoru nejvetsi
smysl). Python s tim pocita a je na to zarizeny.

Snazit se o takove optimalizace vetsinou prinasi vice problemu nez
uzitku. A to i kdyz odhledneme od problemu spojenych s tim, ze python
ma nekolik implementaci ktere se chovaji jinak.


>
> Petr Messner
>
> 28. 8. 2016 v 17:04, Honza Král <honza.k...@gmail.com>:
>
>> 2016-08-28 16:51 GMT+02:00 Jirka Vejrazka <jirka.vejra...@gmail.com>:
>>> Jenom poznamka ne okraj:
>>>
>>> "nedělej skládání řetězců stylem txt += part, je to strašně pomalé (O(n^2)
>>> místo O(n)).. Z txt si udělej list a používej append: txt.append(part) a na
>>> konci "".join(txt)."
>>>
>>> Tohle platilo nekdy do vydani Pythonu 2.5. V te verzi bylo spojovani retezcu
>>> pomoci += vyrazne zrychleno a dnes uz to neni takove vykonove omezeni, jako
>>> driv.
>>
>> Pokud je tech textu vice, .join() je stale lepsi, vice detailu:
>> https://youtu.be/odjpaKL-Fsg?t=20m45s
>>
>>>
>>> Ale je fakt, ze ''.join pouzivam ze zvyku taky :)
>>>
>>>  Jirka
>>>
>>>> On 28 August 2016 at 13:52, Petr Messner <petr.mess...@gmail.com> wrote:
>>>>
>>>>
>>>> co takhle tohle?
>>>>
>>>>
>>>> a b  c de f g h
>>>>
>>>>
>>>> Oprava:
>>>>
>>>> a b  c de f g
>>>> h
>>>>
>>>> PM
>>>>
>>>> ___
>>>> Python mailing list
>>>> python@py.cz
>>>> http://www.py.cz/mailman/listinfo/python
>>>>
>>>> Visit: http://www.py.cz
>>>
>>>
>>>
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
> ___
> 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] Spojovani retezcu: (bylo: Rekurzivní generátor v Pythonu 3?)

2016-08-28 Tema obsahu Honza Král
2016-08-28 16:51 GMT+02:00 Jirka Vejrazka :
> Jenom poznamka ne okraj:
>
> "nedělej skládání řetězců stylem txt += part, je to strašně pomalé (O(n^2)
> místo O(n)).. Z txt si udělej list a používej append: txt.append(part) a na
> konci "".join(txt)."
>
> Tohle platilo nekdy do vydani Pythonu 2.5. V te verzi bylo spojovani retezcu
> pomoci += vyrazne zrychleno a dnes uz to neni takove vykonove omezeni, jako
> driv.

Pokud je tech textu vice, .join() je stale lepsi, vice detailu:
https://youtu.be/odjpaKL-Fsg?t=20m45s

>
> Ale je fakt, ze ''.join pouzivam ze zvyku taky :)
>
>   Jirka
>
> On 28 August 2016 at 13:52, Petr Messner  wrote:
>>
>>
>> co takhle tohle?
>>
>>
>> a b  c de f g h
>>
>>
>> Oprava:
>>
>> a b  c de f g
>> h
>>
>> PM
>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>
>
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] PyFormat 0.1.0 released

2016-08-24 Tema obsahu Honza Král
>> Jedine co vidim je moznost osetrit chyby a partial evaluace.To mi
>> prijde jednodussi dodelat nad str.format a/nebo string.Template
>
> Když je to tak jednoduché, proč už to někdo neudělal?

treba proto, ze to lidem prislo zbytecne a nebo to resi pomoci
standardnich pythonu nastroju jako je funtools.partial napriklad.

Ja jsem treba na zadny use case pro neco takoveho nenarazil. Tim
samozrejme nerikam, ze neexistuje, jen ze davat do souvislosti
jednoduchost a existenci v tomhle smeru proste nedava smysl. Napsat
funkci na nasobeni jakehokoliv objektu cislem 42 je jeste jednodussi a
take to nikdo neudelal :-)

ale jak  jsem rikal - proti gustu...
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] prosím o radu

2016-07-26 Tema obsahu Honza Král
Exceot musi byt na stejne urovni jako try

On Jul 26, 2016 21:55, "Aleš Hrubý"  wrote:

> oprava
> #!/usr/bin/env python
>
> import RPi.GPIO as GPIO
> import time
>
> promena=3
> GPIO.setmode(GPIO.BCM)
> GPIO.setup(4, GPIO.OUT)
> i=0
> while True:
>
>
> time.sleep(1)
>
> try:
> if i == 1:
> GPIO.output(4, False)
> i=0
> else:
> GPIO.output(4, True)
> i=1
> except:
> pass
>
> ./test.py
>   File "./test.py", line 22
> except:
>  ^
> SyntaxError: invalid syntax
>
>
> ___
> 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] prosím o radu

2016-07-26 Tema obsahu Honza Král
Statement 'try' lze pouzit jen v kombinaci s 'except' nebo 'finally'. Na
posledni radku staco doplnit:
except:
pass

Tak aby except zacinalo stejne odsazene jako try a pass o 4 mezery dale

On Jul 26, 2016 21:38, "starenka ."  wrote:

> zkus smazat uplne vsechno od konce souboru po tu posledni zavorku, zrejme
> ram mas nekde tabulatory/mezery navic
>
> 'aknerats'[::-1]
>
> On Jul 26, 2016 9:35 PM,  wrote:
>
>> #!/usr/bin/env python
>>
>> import RPi.GPIO as GPIO
>> import time
>>
>> promena=3
>> GPIO.setmode(GPIO.BCM)
>> GPIO.setup(4, GPIO.OUT)
>> while True:
>>
>> try:
>> time.sleep(1)
>>
>> if i == 1:
>> GPIO.output(4, False)
>> else:
>> GPIO.output(4, True)
>>
>>
>> hlásí to chybu
>> ./test.py
>>   File "./test.py", line 18
>>
>>   ^
>> IndentationError: unexpected unindent
>>
>> vůbec nemohu najit co to je kdyz ten radek ani neexistuje :-( 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
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Roboti, REST, Flask?

2015-09-29 Tema obsahu Honza Král
Psal jsem to tehdy, pisu to i ted - tohle reseni je naprosto nevhodne,
nema zadne reseni konkurentniho pristupu. Neni thread safe napriklad,
coz ho naprosto diskvalifikuje jako implementace zamku. Nehlede na to,
ze je to reimplementace kola.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-09-29 15:30 GMT+02:00 Pavel Schön <pa...@schon.cz>:
> Ahoj,
>
> dovolim si navrhnout pure python reseni na strane serveru zalozene na 
> threadingu a lockach. Kdysi jsem napsal jednoduchy lock manager. Viz:
>
> http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
>
> Ve zkratce:
>
> - na serveru bezi TCP daemon (./dlm.py), ktery obsluhuje klienty.
> - na klienty umistis tentyz soubor dlm.py, ktery si klientska aplikace 
> importne a vola podle potreby.
>
> Aplikace potom funguje velmi podobne, jako bys programoval s mutexy.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Roboti, REST, Flask?

2015-09-29 Tema obsahu Honza Král
2015-09-29 16:28 GMT+02:00 Pavel Schön :
> Moje knihovna nikdy nebyla nasazena v produkci, je to ciste experimentalni 
> zalezitost, hricka pro studijni ucely. Autor puvodniho dotazu hleda neco pro 
> studijni a vyukove ucely, pokud se nepletu.

Obzvlast pro vyukove ucely je skutecne vhodne vybrat dobra reseni, v
tomto pripade tedy neco ze std knihovny nebo neco co funguje a plni
sliby

Nejhorsi co se muze stat je, ze se nekdo nauci spatne postupy a
principy, proto je vzdy dulezite, obcas i za cenu komplexity (django
vs flask) nebo extra zavislosti (gunicorn nebo twisted na normalni
server vs custom tcp socket), zvolit reseni ktere podporuje dobre
navyky. V tomhle pripade je dobry navyk i nevynalezat kolo.

> Server si v zadnem pripade nepamatuje stav zamku pri restartu, klientska cast 
> neresi vypadky spojeni, neimplementuje reconnect apod. Pokud nastane chyba v 
> TCP, na strane klienta se vyhodi vyjimka socket.error a je jen na nem, jak se 
> zachova.
>
> Knihovna take neresi deadlock, ale to ani normalni threading neresi 
> deadlocky. Jejich predchazeni je uz mimo ramec teto diskuze.
>
> BTW, nad jednoduchym lockem lze stavet vyssi primitiva, semafory apod.
>
>
> Dne úterý 29. září 2015 15:51:15 UTC+2 Petr Messner napsal(a):
>> Zajímavý kus kódu. Co se stane, když se server restartuje, zůstane stav 
>> zámků zachován? Co se stane, když klient požádá o acquire a musí čekat, 
>> protože zámek má již někdo jiný, ale zrovna v tu chvíli vypadne síť, spojení 
>> se ukončí a recv() vrátí prázdný řetězec?
>>
>>
>> Když už řešit zamykání takhle síťově, tak aspoň pořádně :) Viz např. Redis 
>> (http://antirez.com/news/77) Apache Zookeeper, Apache Helix...
>>
>>
>> Bohužel, distribuované algoritmy nejsou tak jednoduché, že by do 
>> "normálního" algoritmu stačilo přidat sokety.
>>
>>
>> PM
>>
>>
>> Dne 29. září 2015 15:30 Pavel Schön  napsal(a):
>> Ahoj,
>>
>>
>>
>> dovolim si navrhnout pure python reseni na strane serveru zalozene na 
>> threadingu a lockach. Kdysi jsem napsal jednoduchy lock manager. Viz:
>>
>>
>>
>> http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
>>
>>
>>
>> Ve zkratce:
>>
>>
>>
>> - na serveru bezi TCP daemon (./dlm.py), ktery obsluhuje klienty.
>>
>> - na klienty umistis tentyz soubor dlm.py, ktery si klientska aplikace 
>> importne a vola podle potreby.
>>
>>
>>
>> Aplikace potom funguje velmi podobne, jako bys programoval s mutexy.
>>
>>
>>
>> ___
>>
>> Python mailing list
>>
>> pyt...@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] Chyba v distribuci Pythonu?

2015-09-18 Tema obsahu Honza Král
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

Re: [python] unicode 2.7

2015-06-26 Tema obsahu Honza Král
s.decode('encoding') by melo fungovat, kde 'encoding' je napriklad
'utf-8' (vubec netusim jaky ma windows encoding na FS).

dalsi moznost je proste nahoru do souboru dat:

from __future__ import unicode_literals

a nebo (idealne :) ) prejit na python3
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-06-26 14:12 GMT+02:00  g...@post.cz:
 Když mám ve složce soubor s unicode znaky, tak tohle mi ho spolehlivě maže:

 import os
 for s in os.listdir(u.):
 os.remove(s)

 Protože ale proceduru mazání / přesouvání mám hluboko ve funkci a nechce se
 mi měnit její vstup . ---u., abych nerozhodil něco jiného, rád bych to
 udělal nějak takhle:

 import os
 for s in os.listdir(.):
 os.remove(unicode(s,...))

 Jak? Zkoušel jsem různé varianty pokus-omyl, ale bez výsledku a pak už mě to
 přestalo bavit, tak jsem si říkal, že bude rychlejší se tady někoho zeptat.

 Díky :-)

 winxp+win7, python2.7


 ___
 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] Paměťově náročné řazení

2015-06-15 Tema obsahu Honza Král
Ahoj,

ja bych to delal lazy, a tedy nikdy nevytvarel instance tech listu
(coz ty delas v __getitem__) a misto toho by proste byl kazdy radek
reprezentovany jen tim offsetem ale existovalo by jen jedno globalni
pole s tim vstupem:

# lze rovnez resit lazy, ale asi nestoji za to, pro pripadnou usporu
pameti u hodne velkych vstupu pouzij __slots__
self.lines = [Line(input, offset) for offset in range(len(input))]

kde Line ma naimplementovano __getitem__ (self.input[(self.offset +
key) % len(self.input)]) a hlavne __iter__

pak je jen potreba vymyslet sort, ale tady bych proste jen resilt
rucne lexikograficky sort - tedy napred pole prvniho pismene, pak
podle druheho atp - aby ses vyhnul materializovani kazde radky (coz
bude fungovat jelikoz sort je stable). Pripadne pomoci komparatoru
(https://docs.python.org/2/howto/sorting.html#the-old-way-using-the-cmp-parameter)
coz bude fungovat i na tech lazy objektech.

Je docela dobre mozne, ze pandas bude mit neco co se bude hodit na
problem lepe, ale o tom ja nic nevim
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-06-15 22:36 GMT+02:00 Lumír Balhar frenzy.madn...@gmail.com:
 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

 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 :-)

2015-05-11 Tema obsahu Honza Král
Jen pozor, ze tohle je chovani CPythonu, tedy jedne z implementaci a
nikoli definice chovani pythonu, nelze tedy na to spolehat a
porovnavani integereru by se melo vzdy provadet pres == a nikdy pres
is, i kdybychom meli 1000% jistotu, ze to budou jen cisla od 0 do 10.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-05-11 22:28 GMT+02:00 Pavel Schön pa...@schon.cz:
 Integery od -5 do 256 jsou hardcodované, neboť jsou často používané, vždy 
 jsou inicializované v paměti a proto mají stejné adresy.

 https://docs.python.org/2/c-api/int.html#c.PyInt_FromLong
 ___
 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] Aktualizace balicku pred spustenim

2015-03-23 Tema obsahu Honza Král
Ahoj,

pouzil bych normalne pip a PYPI, pripadne vlastni PYPI server. Je to
slozity problem (fungovat vsude, stahovat a instalovat, ...) ktery ma
resit prave pip, proc nevyuzit toho ze to spousta lidi resi a ladi...
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-03-23 20:56 GMT+01:00 Petr Blahos petrbla...@gmail.com:
 Ahoj,

 kdysi před lety, když jsem ještě netušil, že existují egg a podobné
 jsem si udělal takovou věcičku, že když spouštím program, tam
 má takový malý spouštěč, ten si šáhne na server, případně stáhne
 a rozbalí novou verzi pokud tam je, a pak spustí. No a teď potřebuju
 naimplementovat znovu vpodstatě totéž, ale myslím si, že už to někdo
 musel udělat dříve a lépe. Nemáte nějaké typy?

 Vlastnosti:
 * musí to fungovat pod ne-root účtem
 * musí to běžet i na windows
 * ani snad nehledám nic na centrální správu a instalaci, očekávám, že
 ta první instalace proběhne ručně, jde mi o aktualizace
 * Python 2.7

 Jestli nic není, tak přemýšlím tím směrem, že použiju easy_install --user
 packagename
 nebo pip install --user packagename s nastavením zdrojového adresáře na
 nějakou tu siťovou cestu. Jenom mám obavu, aby to nebylo strašně pomalé.

 Rád si přečtu vaše názory.

 --
 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] [django-cs] ? Prazske Pyvo #47 ?

2015-02-18 Tema obsahu Honza Král
Ja nekdy neco rad povim o designu API knihoven - tedy ne REST, ale jak
navrhnout interface neceho ala Django ORM (Elasticsearch DSL) aby slo
udelat vse co by mohlo byt potreba, lide se nemuseli prilis veci ucit
a dobre se jim to pouzivalo.

Pripadne i neco o tom jak udrzujeme API pro elasticsearch up-to-date
vcetne klientu v 6 jazycich.

Ale bohuzel v Breznu nebudu.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-18 15:56 GMT+01:00 Jakub Vysoky ja...@borka.cz:
 s tebou uz zrovna pocitame, i kdyz, zalezi, co nabidnes :

 kdo dal? vitek by mohl neco povedet o falcon, ze jo?

 ale jeste by to chtelo nejake api frameworky, nebo mozna neco, co ty api
 data uz bude nekde zobrazovat (ruzne tyhle javascript knihovny?:))

 napady vitany!

 2015-02-18 15:04 GMT+01:00 Honza Javorek m...@honzajavorek.cz:

 Ja?

 2015-02-18 12:31 GMT+01:00 Jakub Vysoky ja...@borka.cz:

 api mozna priste, ale shanime speakry... takze #callforspeakers !!!
 napady?

 On Monday, February 16, 2015 at 11:37:07 PM UTC+1, Radek Svarz wrote:

 To API or not to API?

 Takze API nakonec nebude?

 Na to jsem se tesil.

 r


 On Monday, February 16, 2015 at 11:08:12 PM UTC+1, Honza Král wrote:

 Ja muzu udelat lightning talk a couchovani (nejen) na Django Girls. A
 take prinesu par knih do knihovnicky abychom to mohli hned vyzkouset
 :)
 Honza Král
 E-Mail: honza...@gmail.com
 Phone:  +420 606 678585


 2015-02-16 23:01 GMT+01:00 Petr Viktorin enc...@gmail.com:
  Hlásím jeden lightning talk na https://github.com/pyvec/bookshelf !
  Příležitost pro všechny ze svých přečtených (nejen) Pythoních svazků
  ofouknout prach, a nechat je kolovat po republice.
 
  A slyšel jsem že Mikey odřekla účast, tak na report o DjangoGirls by
  to chtělo nějakého kouče. Co vy na to, Honzové? :)
 
  2015-02-16 17:57 GMT+01:00 Jiri Barton jb...@tele3.cz:
  Zdar Pythonisti,
 
  uz tuto stredu, pozitri, osmnacteho unora dvatisice patnact se
  uskutecni
  dalsi, ctyricaty sedmy, bleskovy Python sraz. Jakovzdy to bude Na
  Venecku,
  Ostrovskeho tricet osm A, Praha PET - Smichoff, od devatenacti
  hodin.
 
  Ohlasy na minuly Docker sraz byly velke a brzy jiz chystame
  pokracovani;
  speakri nam bohuzel trochu vybouchli, ale nezoufejte, sraz bude. Jak
  napovida %subj%, radi bychom ozivili lightning talky, pripadne i
  kratsi
  zpravicky lze. Uplne nejlepe udela ten, kdo si vzpomene, co ho od
  noveho
  roku nadchlo a v vcem/s cim rad dela!
 
  Whiteboard:
  kitchen.ci - test konfiguraci
  predbezna zprava o Django Girls - Django workshopu v Brne
  ...
 
  Urcite dorazte!
 
  whiskybar
 
  http://lanyrd.com/2015/praha-pyvo-february
 
  --
  --
  E-mailová skupina djan...@googlegroups.com
  Správa: http://groups.google.cz/group/django-cs
  --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru
  skupiny
  django-cs ve Skupinách Google.
  Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze
  skupiny,
  zašlete e-mail na adresu django-cs+...@googlegroups.com.
  Chcete-li zobrazit tuto diskusi na webu, navštivte
 
  https://groups.google.com/d/msgid/django-cs/d1980910af018018c1d5d41f7c72bdde%40hosting4u.cz.
  Další možnosti najdete na adrese https://groups.google.com/d/optout.
 
  --
  --
  E-mailová skupina djan...@googlegroups.com
  Správa: http://groups.google.cz/group/django-cs
  ---
  Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
  django-cs ve Skupinách Google.
  Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
  zašlete e-mail na adresu django-cs+...@googlegroups.com.
  Chcete-li zobrazit tuto diskusi na webu, navštivte
  https://groups.google.com/d/msgid/django-cs/CA%2B%3D%2BwqDkgGAL5s4oNzbUhQhgxin-ukHjsfMmiKKbJ4mwRN%2B-ag%40mail.gmail.com.
  Další možnosti najdete na adrese https://groups.google.com/d/optout.





 --
 Jakub Vysoky

 mob: +420 605 852 377
 jab: jakub.vys...@gmail.com
 twit: https://twitter.com/kvbik

 --
 --
 E-mailová skupina django...@googlegroups.com
 Správa: http://groups.google.cz/group/django-cs
 ---
 Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
 „django-cs“ ve Skupinách Google.
 Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
 zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com.
 Chcete-li tuto diskusi zobrazit na webu, navštivte
 https://groups.google.com/d/msgid/django-cs/CAEO8NYwc2ECw7e5SNu-CZ09m7XLMi02dFJ-BsumETGY5Ka54aA%40mail.gmail.com.
 Další možnosti najdete na https://groups.google.com/d/optout.


 --
 --
 E-mailová skupina django...@googlegroups.com
 Správa: http://groups.google.cz/group/django-cs
 ---
 Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
 „django-cs“ ve Skupinách Google.
 Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
 zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com.
 Chcete-li tuto diskusi zobrazit na webu, navštivte
 https://groups.google.com/d/msgid/django-cs/CAPAmg-cMYg9H81G41u1s2OYZDm-U%2Br0rTc1OLosav65y26atGQ

Re: [python] [django-cs] ☇ Prazske Pyvo #47 ☇

2015-02-16 Tema obsahu Honza Král
Ja muzu udelat lightning talk a couchovani (nejen) na Django Girls. A
take prinesu par knih do knihovnicky abychom to mohli hned vyzkouset
:)
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-16 23:01 GMT+01:00 Petr Viktorin encu...@gmail.com:
 Hlásím jeden lightning talk na https://github.com/pyvec/bookshelf !
 Příležitost pro všechny ze svých přečtených (nejen) Pythoních svazků
 ofouknout prach, a nechat je kolovat po republice.

 A slyšel jsem že Mikey odřekla účast, tak na report o DjangoGirls by
 to chtělo nějakého kouče. Co vy na to, Honzové? :)

 2015-02-16 17:57 GMT+01:00 Jiri Barton j...@tele3.cz:
 Zdar Pythonisti,

 uz tuto stredu, pozitri, osmnacteho unora dvatisice patnact se uskutecni
 dalsi, ctyricaty sedmy, bleskovy Python sraz. Jakovzdy to bude Na Venecku,
 Ostrovskeho tricet osm A, Praha PET - Smichoff, od devatenacti hodin.

 Ohlasy na minuly Docker sraz byly velke a brzy jiz chystame pokracovani;
 speakri nam bohuzel trochu vybouchli, ale nezoufejte, sraz bude. Jak
 napovida %subj%, radi bychom ozivili lightning talky, pripadne i kratsi
 zpravicky lze. Uplne nejlepe udela ten, kdo si vzpomene, co ho od noveho
 roku nadchlo a v vcem/s cim rad dela!

 Whiteboard:
 kitchen.ci - test konfiguraci
 predbezna zprava o Django Girls - Django workshopu v Brne
 ...

 Urcite dorazte!

 whiskybar

 http://lanyrd.com/2015/praha-pyvo-february

 --
 --
 E-mailová skupina django...@googlegroups.com
 Správa: http://groups.google.cz/group/django-cs
 --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
 django-cs ve Skupinách Google.
 Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
 zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com.
 Chcete-li zobrazit tuto diskusi na webu, navštivte
 https://groups.google.com/d/msgid/django-cs/d1980910af018018c1d5d41f7c72bdde%40hosting4u.cz.
 Další možnosti najdete na adrese https://groups.google.com/d/optout.

 --
 --
 E-mailová skupina django...@googlegroups.com
 Správa: http://groups.google.cz/group/django-cs
 ---
 Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
 ve Skupinách Google.
 Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
 e-mail na adresu django-cs+unsubscr...@googlegroups.com.
 Chcete-li zobrazit tuto diskusi na webu, navštivte 
 https://groups.google.com/d/msgid/django-cs/CA%2B%3D%2BwqDkgGAL5s4oNzbUhQhgxin-ukHjsfMmiKKbJ4mwRN%2B-ag%40mail.gmail.com.
 Další možnosti najdete na adrese https://groups.google.com/d/optout.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Volba web-frameworku (a pár menších dotazů)

2015-02-12 Tema obsahu Honza Král
V tomto pripade kvuli tomu, ze na to neni (v porovnani s ostatnimi)
tak velka komunita a takove mnozstvi dohledatelnych a pristupnych
materialu. O technickych (ci designovych) kvalitach to nerika vubec
nic.

Pro me navic CherryPy ma dalsi vlastnost (uplne stejne jako flask
apod) a to je, ze neobsahuje vsechno co je potreba pro tvorbu webu -
treba formulare, prace s db, caching, ... To je vlastnost kterou
vetsina zkusenych uzivatelu uvita (muzou si vybrat svuj oblibeny
nastroj misto aby byli vazani na default), ale pro zacatecniky mi
prijde prave lepsi Django, ktere vse vyresi.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-13 1:05 GMT+01:00 Radek Holý radekholypub...@gmail.com:
 Mě vždycky zarazí, že v takovýchto diskusích nikdo nikdy nezmíní CherryPy.

 Dělal jsem v něm před X lety a zrovna před pár měsíci jsem začal znovu a
 zatím jsem nenarazil na problém. I takové pseudo-REST-API se mi v něm děla
 naprosto pohodlně. A ještě k sobě nenatahuje výchozí šablonovací systém,
 takže si můžu vybrat jakýkoliv bez zbytečných závislostí (vybral jsem si
 Chameleon).

 Proč ho nikdo nebere v úvahu?
 --
 Radek


 Dne 12. února 2015 15:51 Honza Javorek m...@honzajavorek.cz napsal(a):

 Ac jsem v Djangu v zivote naprogramoval 1,3 veci a vse ostatni co jsem kdy
 udelal bylo ve Flasku, tak souhlasim s Honzou, Djangem nic nepokazis, jeho
 znalost se ti neztrati a kdyz ti nebude nasledne vyhovovat, tak prechod na
 cokoliv dalsiho (treba Flask) je otazka jednoho odpoledne, hned se
 zorientujes.

 Jinak oba ty fw maji moc peknou dokumentaci, ale Django je ucebnicovy
 priklad jak delat SKVELOU dokumentaci.

 H

 2015-02-11 16:12 GMT+01:00 Honza Král honza.k...@gmail.com:

 Ja vzdy zacatecnikum doporucuju Django - neni to vzdy ta nejlepsi
 volba, ale je na vsechno dostatecna a ma uz vsechno vyresene spolu se
 spoustou materialu pro zacatecniky i pokrocile.

 Pak, az se trochu zorientujes jak se co dela, se muzes vrhnout do
 flasku napriklad a uz nebudes tak ztraceny.
 Honza Král
 E-Mail: honza.k...@gmail.com
 Phone:  +420 606 678585


 2015-02-11 16:08 GMT+01:00 Honza Javorek m...@honzajavorek.cz:
  Bottle je podle me spis na skolni priklady, ale znam startupy, ktery na
  tom
  delaji produkcni sw :)
 
  Do Flasku si na formulare vem
  https://flask-wtf.readthedocs.org/en/latest/
 
  Honza
 
  2015-02-11 14:35 GMT+01:00 starenka . staren...@gmail.com:
 
  Btw: pokud mas na vyber jen dve (nebo relativne malo) moznosti je
  podle me lepsi misto selectboxu (dropdownu), pouzit radia...
  ---
  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]
 
 
  2015-02-11 14:34 GMT+01:00 starenka . staren...@gmail.com:
   Ahoj,
  
   Flask/bottle je podle me uplne dostacujici. V kazdym pripade bych
   asi
   trochu osetril vstupy (napr pokud mi to dovoli sipkama kliknout rok
   -1, tak se ti to zhrouti)
  
   Pro tip: tlacitko smazat formular je podle me naprosto k nicemu
  
  
   ---
   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]
  
  
   2015-02-11 14:04 GMT+01:00 Marcus Scalpere
   marcus.scalp...@gmail.com:
   Zdravím,
   řeším dilema ohledně web-frameworku. Bohužel nemám zkušenosti s
   webdesignem, první pokus dopadl takto
   http://edelstadt.pythonanywhere.com/
   (vůbec netuším, jestli je v pořádku mít kupu formulářů na jedné
   stránce),
   ale dostal jsem pár dalších nápadů (a nejspíš mě napadnou další),
   takže bych
   to potřeboval buď rozšířit nebo vytvořit něco úplně nového. Co
   zvolit?
   Osobně jsem zúžil výbět na Flask, Bootle a Pyramid. Uvedená verze
   je ve
   Flasku, ale občas jsem měl problém poprat se právě s formuláři.
   Navíc bych
   chtěl generovat takový event calendar, který bude (asi?) sosat data
   ze dvou
   různých zdrojů (události, které se opakují každý rok ve stejný den
   a
   události, které jsou v různé dny, taky by se hodil nějaký návrh),
   takže
   netuším, jestli to ještě spadá do micro-blogu nebo už je to o level
   víc.
  
   A spíš průzkumná otázka - je vůbec šance nějaknechci říci přímo
   vydělat, možná monetizovat takový nápad?
   ___
   Python mailing list
   python@py.cz
   http://www.py.cz/mailman/listinfo/python
  
   Visit: http://www.py.cz
  ___
  Python mailing list
  python@py.cz
  http://www.py.cz/mailman/listinfo/python
 
  Visit: http://www.py.cz
 
 
 
  ___
  Python mailing list
  python@py.cz
  http://www.py.cz/mailman/listinfo/python
 
  Visit: http://www.py.cz
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz



 ___
 Python mailing list
 python@py.cz
 http://www.py.cz

Re: [python] Lock

2015-02-10 Tema obsahu Honza Král
Tohle skutecne neni dobre reseni - napriklad vubec neresi
synchronizaci pristupu ke globalnimu registru zamku a tak to nema
zadnou garanci, ze to skutecne bude fungovat. Namatkou radek 140 kde
se klidne muze stat ze dve vlakna provedou ten samy test a kazde si
vytvori vlastni zamek se stejnym jmenem. A to neresim nekonzistentni
pojmenovani a preklepy (mklock vs mkLock, ...)

Napsat spravne thread-safe kod neni vubec jednoduche, v pythonu
obzvlast - clovek se musi zamyslet nad kazdou operaci nejen v jeho
kodu. Ale to jsme uz hodne daleko od puvodniho tematu :)
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-10 14:45 GMT+01:00 Petr Messner petr.mess...@gmail.com:
 Už to asi vidím, každý klient má své vlákno (leda že by se samotný klient
 používal vícevláknově). Příště si dám větší pauzu před odesláním :)


 PM


 Dne 10. února 2015 14:39 Petr Messner petr.mess...@gmail.com napsal(a):

 Jak jsou jednotlivé zprávy od sebe odděleny? Vidím tam v klientovi


 def communicate(self, data):
 self._socket.send('%s %s' % (self.name, data))
 self._socket.recv(self.buffer_size)



 A server to čte takto:

 while True:
 data = self._socket.recv(self.buffer_size)

 if data in ('', '\n', '\r\n'):
 return

 try:
 who, op, name = data.split()
 except ValueError:
 raise ValueError('Invalid data')



 Co když se zprávy pošlou náhodou tak, že
 self._socket.recv(self.buffer_size) přijme dvě zprávy najednou? To mu pak
 přijde něco jako client1 mklock lock1client2 mklock lock2 a nebude to
 fungovat - server spadne.

 PM


 Dne 10. února 2015 14:15 Pavel S pa...@schon.cz napsal(a):

 Jeste existuje tzv. DLM (Distributed Lock Manager). Zjednodusene receno,
 je to mutex, ktery je pristupny po siti.

 Jeden takovy jednoduchy distributed lock manager jsem napsal v pythonu a
 umistil na activestate zde:
 http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz




 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Seznamy

2015-02-09 Tema obsahu Honza Král
* nemeni vnitrni stav oproti reseni s pop()

prave - tohle mi nedava prilis smysl. Vnitrne je vse stejne prave -
obe reseni vytvareji list ci tuple tech mnozin a je to jen mezikrok,
nejsou to zadna data ktera jsou predavana zvenku, nebo maji nejaky
vyznam. Ptal jsem se proto (a nechci prudit, skutecne me to zajima) v
cem je ta vyhoda.

To same u list comprehension (generator expression v tomto pripade
abychom byli 100% presni) - drtive vetsine lidi se kterymi jsem
mluvil, at uz se jednalo o naproste zacatecniky nebo velmi pokrocile
programatosky, prijdou mnohem citelnejsi prave list comprehensions nez
map/filter/reduce. A i ja to tak mam - map a spol pouzivam jen kvuli
optimalizacim ktere nabizeji. Prekvapuje me, ze tady slysim z nekolika
stran jiny nazor a zajima me, cim to je.

List comprehension je prave jedna z veci co se, z mych zkusenosti,
zacatecnikum na Pythonu tak libi - je jasne videt co to dela, da se to
precist a krasne se to mapuje na matematicke zapisy na ktere jsou
mnozi zvykli.

Diky za zajimavou diskuzi :)
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-09 16:17 GMT+01:00 Pavel S pa...@schon.cz:
 Na pythonu je krasne, ze jedna a tataz vec lze udelat mnoha zpusoby a ja 
 nabidnul jeden z nich:

 * nemeni vnitrni stav oproti reseni s pop()
 * nepouziva operator  na setu, cimz me nenuti zjistovat, co tento operator 
 vlastne dela. (intersection je jasne...)
 * nepouziva list comprehension
 * je rozepsane do vice radku, primocare a jasne citelne
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Seznamy

2015-02-09 Tema obsahu Honza Král
ne, o tom jsem nemluvil, predpokladam python 3 :)

Materializuje se kvuli predani do intersection - viz operator '*'
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-09 16:34 GMT+01:00 Pavel S pa...@schon.cz:
 Jeste pokud bychom se chteli zbavit 'materializace seznamu uprostred', lze 
 in-place pouzit itertools.ifilter a itertools.imap.

 Dne pondělí 9. února 2015 16:17:52 UTC+1 Pavel S napsal(a):
 Na pythonu je krasne, ze jedna a tataz vec lze udelat mnoha zpusoby a ja 
 nabidnul jeden z nich:

 * nemeni vnitrni stav oproti reseni s pop()
 * nepouziva operator  na setu, cimz me nenuti zjistovat, co tento operator 
 vlastne dela. (intersection je jasne...)
 * nepouziva list comprehension
 * je rozepsane do vice radku, primocare a jasne citelne
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Lock

2015-02-09 Tema obsahu Honza Král
A samozrejme, jako vzdy, je lepsi varianta bezzamkova:

UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-09 11:42 GMT+01:00 mtip m...@atlas.cz:
 Ahoj,
 narazil jsem na problém se zámkem.

 Mám  aplikaci  na web serveru, která ukládá příznak booolean Zaplaceno
 do MySQL databáze.
 Občas  se ale stane, že potvrzení platby přijde najednou ve stejný čas
 ze dvou zdrojů. Chtěl jsem to vyřešit zámkem, což ale nepomůže.

 Princip kódu:

 from threading import Lock
 lock = Lock()
 lock.acquire()
 try:
 mysql_cursor.execute(SELECT Zaplaceno FROM platby WHERE Id=%s, (1,))
 if mysql_cursor.fetchall()[0]['Zaplaceno'] == 0:
 mysql_cursor.execute(UPDATE Zaplaceno=1 FROM platby WHERE Id=%s, 
 (1,))
 mysql_connection.commit()
 # dalsi zpracovani platby...
 finally:
 lock.release()



 Pokud je request spuštěn 2x ve stený čas provede se zpracování platby 2x.
 Přičemž ale SELECT je pod zámkem, takže by se neměl provést mezi SELECT a 
 UPDATE druhého threadu.
 Netušíte, kde může být problém?

 Díky za odpovědi.

 Mirek

 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Lock

2015-02-09 Tema obsahu Honza Král
Jestli nemusi byt MySQL tak mas napul vyhrano - MySQL je v 99% ten problem.
/rant

Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585

2015-02-09 15:13 GMT+01:00 mtip m...@atlas.cz:

  Díky za postrčení, nedošlo mi, že to může být jiný proces a ne thread.

 Transakce jsem použít nechtěl, protože databáze nemusí být innodb dokonce
 ani mysql.


 Mirek
 
 9. února 2015, 13:39:48, napsal jste:

  Web server miva typicky vice procesu a tak lokalni zamky nebudou
 fungovat.
 Presne na tyhle veci se ale hodi db transakce, rozhidne lepsi nastroj -
 podivej se na 'select ... for update' a 'isolation level'.
 On Feb 9, 2015 11:43 AM, mtip m...@atlas.cz wrote:
 Ahoj,
 narazil jsem na problém se zámkem.

 Mám  aplikaci  na web serveru, která ukládá příznak booolean Zaplaceno
 do MySQL databáze.
 Občas  se ale stane, že potvrzení platby přijde najednou ve stejný čas
 ze dvou zdrojů. Chtěl jsem to vyřešit zámkem, což ale nepomůže.

 Princip kódu:

 from threading import Lock
 lock = Lock()
 lock.acquire()
 try:
 mysql_cursor.execute(SELECT Zaplaceno FROM platby WHERE Id=%s, (1,))
 if mysql_cursor.fetchall()[0]['Zaplaceno'] == 0:
 mysql_cursor.execute(UPDATE Zaplaceno=1 FROM platby WHERE Id=%s,
 (1,))
 mysql_connection.commit()
 # dalsi zpracovani platby...
 finally:
 lock.release()



 Pokud je request spuštěn 2x ve stený čas provede se zpracování platby 2x.
 Přičemž ale SELECT je pod zámkem, takže by se neměl provést mezi SELECT a
 UPDATE druhého threadu.
 Netušíte, kde může být problém?

 Díky za odpovědi.

 Mirek

 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Lock

2015-02-09 Tema obsahu Honza Král
Web server miva typicky vice procesu a tak lokalni zamky nebudou fungovat.

Presne na tyhle veci se ale hodi db transakce, rozhidne lepsi nastroj -
podivej se na 'select ... for update' a 'isolation level'.
On Feb 9, 2015 11:43 AM, mtip m...@atlas.cz wrote:

 Ahoj,
 narazil jsem na problém se zámkem.

 Mám  aplikaci  na web serveru, která ukládá příznak booolean Zaplaceno
 do MySQL databáze.
 Občas  se ale stane, že potvrzení platby přijde najednou ve stejný čas
 ze dvou zdrojů. Chtěl jsem to vyřešit zámkem, což ale nepomůže.

 Princip kódu:

 from threading import Lock
 lock = Lock()
 lock.acquire()
 try:
 mysql_cursor.execute(SELECT Zaplaceno FROM platby WHERE Id=%s, (1,))
 if mysql_cursor.fetchall()[0]['Zaplaceno'] == 0:
 mysql_cursor.execute(UPDATE Zaplaceno=1 FROM platby WHERE Id=%s,
 (1,))
 mysql_connection.commit()
 # dalsi zpracovani platby...
 finally:
 lock.release()



 Pokud je request spuštěn 2x ve stený čas provede se zpracování platby 2x.
 Přičemž ale SELECT je pod zámkem, takže by se neměl provést mezi SELECT a
 UPDATE druhého threadu.
 Netušíte, kde může být problém?

 Díky za odpovědi.

 Mirek

 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Seznamy

2015-02-09 Tema obsahu Honza Král
Je fajn, ze davas funkcionalni reseni, ale kdyz uz to napises mozna by
stalo za to vysvetlit, v cem je to dobre, proc by to melo nekoho
zajimat?

Ja tam funkcne zadny rozdil nevidim na rozdil od druheho reseni (s
.pop() nebo intersection od alese) a je to o neco horsi nez ciste
funkcionalni reseni pres reduce (ktere nenuti materializaci toho
seznamu uprostred).

Dik
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-09 14:06 GMT+01:00 Pavel S pa...@schon.cz:
 Jeste jedno reseni tu mame, ktere je ciste funkcnionalni, nebot nepouziva 
 imperativni operace jako pop() apod.

 result = (
 set.intersection(
 *map(
  set,
  filter(
 operator.truth,
 ( list_a, list_b, list_c )



 Dne sobota 7. února 2015 22:24:59 UTC+1 Ales Zoulek napsal(a):
 lists.pop() melo byt pravdepodobne sets.pop(), jinak urcite radsi to 
 druhy.



 Jinak na to existuje zkratka, ktera dela v zasade to stejne - 
 set.intersection() bere jako parametr libovolny pocet setu. Takze toto by 
 melo byt rozumne kratky a furt dost citelny:


 non_empty_sets = [set(l) for l in (list_a, list_b, ..) if l]

 result_set = set.intersection(*non_empty_sets)

 return list(result_set)









 On Fri Feb 06 2015 at 10:55:51 PM Vladimir Macek ma...@sandbox.cz wrote:
 Dovolte poznámku,



 je fajn, jak Honza dodal dva návrhy. Tipuju, že ten druhý je čitelnější pro

 začátečníky, je takový imperativní. :-)



 Doporučoval bych však zkusit pochopit eleganci toho druhého, který je IMO

 přístupnější pro zkušené a otevírá trochu jiný svět uvažování.



 Čitelnosti by pomohlo rozdělení na dva řádky (nejdřív nazvat generátor),

 což jistě Honza ví.



 Pokud tazateli zároveň půjde o zachování pořadí prvků, může se podívat po

 typu OrderedSet (http://code.activestate.com/recipes/576694/).



 Vl.



 On 6.2.2015 20:50, Honza Král wrote:

  tohle je kratka odpoved:

 

  import operator

  reduce(operator.and_, (set(l) for l in (list_a, list_b, list_c) if l))

 

  ale asi ne nejlepsi (neni prilis citelna)

 

 

  doporucil bych spis neco jako:

 

  sets = [set(l) for l in (list_a, list_b, ..) if l]

 

  result =lists.pop()

 

  for s in sets:

  result = s

  list_vysledny = list(result)

 

 

  Honza Král

  E-Mail: honza...@gmail.com

  Phone:  +420 606 678585

 

 

  2015-02-06 20:10 GMT+01:00 Marcus Scalpere marcus@gmail.com:

  Pěkný večer vinšuji,

  mám několik seznamů a potřebuji zjistit, které jsou a nejsou prázdné (to 
  bych ještě dal) a pokud některé prázdne nejsou, tak je projít a pokud 
  jsou některé hodnoty ve VŠECH, tak je uložit.

  Něco jako:

  list_a = []

  list_b = [x, y, z]

  list_c = [x, y]

  .

  .

  .

  list_vysledny = [x, y]

 

  Snad jsem se vyjádřil jasně a srozumitelně. Děkuji mnohokráte



 ___

 Python mailing list

 pyt...@py.cz

 http://www.py.cz/mailman/listinfo/python



 Visit: http://www.py.cz

 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Seznamy

2015-02-09 Tema obsahu Honza Král
 Mě se líbí explicitní použití funkcí map() a filter(), protože je to pro 
 začátečníka čitelnější a pochopitelnější, než List Comprehension

Tohle me zajima - ja mam presne opacnou zkusenost. Bavime se o
zacatecnicich v programovani (s temi mam zkusenost ja), ci jen
zacatecniky s pythonem, ale programatory?

Diky

Jinak samozrejme souhlas s dalsimi body, jen je, dle meho, potreba
dbat na to, aby kod byl citelny - casto je lepsi mit mene efektivni
implementaci, ktera je na prvni pohled zrejma.
Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-09 15:33 GMT+01:00 Jan Bednařík jan.bedna...@gmail.com:
 Mě se líbí explicitní použití funkcí map() a filter(), protože je to pro
 začátečníka čitelnější a pochopitelnější, než List Comprehension, kde si ty
 funkce musí domyslet. Nicméně List Comprehension je v Pythonu idiomatické
 řešení, a čím dříve ho začátečník pochopí a naučí se ho používat, tím lépe.

 Myslím si ale, že re-implementovat funkci reduce() vlastním for cyklem, není
 úplně šťastné řešení. Tam kde to jde bych se držel hotových nástrojů ze
 standardní knihovny. V tomhle případě je ale set.intersection() lepší volba
 než reduce(and_, ...).


 Každopádně asi všechna navržená řešení nefungují, protože nepočítají s
 variantou, že budou všechny vstupní seznamy prázdné. Já bych to řešil takto:

 sets = [set(l) for l in (list_a, list_b, list_c) if l]
 result = list(set.intersection(*sets)) if sets else []

 Honza

 2015-02-09 14:21 GMT+01:00 Honza Král honza.k...@gmail.com:

 Je fajn, ze davas funkcionalni reseni, ale kdyz uz to napises mozna by
 stalo za to vysvetlit, v cem je to dobre, proc by to melo nekoho
 zajimat?

 Ja tam funkcne zadny rozdil nevidim na rozdil od druheho reseni (s
 .pop() nebo intersection od alese) a je to o neco horsi nez ciste
 funkcionalni reseni pres reduce (ktere nenuti materializaci toho
 seznamu uprostred).

 Dik
 Honza Král
 E-Mail: honza.k...@gmail.com
 Phone:  +420 606 678585


 2015-02-09 14:06 GMT+01:00 Pavel S pa...@schon.cz:
  Jeste jedno reseni tu mame, ktere je ciste funkcnionalni, nebot
  nepouziva imperativni operace jako pop() apod.
 
  result = (
  set.intersection(
  *map(
   set,
   filter(
  operator.truth,
  ( list_a, list_b, list_c )
 
 
 
  Dne sobota 7. února 2015 22:24:59 UTC+1 Ales Zoulek napsal(a):
  lists.pop() melo byt pravdepodobne sets.pop(), jinak urcite radsi
  to druhy.
 
 
 
  Jinak na to existuje zkratka, ktera dela v zasade to stejne -
  set.intersection() bere jako parametr libovolny pocet setu. Takze toto by
  melo byt rozumne kratky a furt dost citelny:
 
 
  non_empty_sets = [set(l) for l in (list_a, list_b, ..) if l]
 
  result_set = set.intersection(*non_empty_sets)
 
  return list(result_set)
 
 
 
 
 
 
 
 
 
  On Fri Feb 06 2015 at 10:55:51 PM Vladimir Macek ma...@sandbox.cz
  wrote:
  Dovolte poznámku,
 
 
 
  je fajn, jak Honza dodal dva návrhy. Tipuju, že ten druhý je čitelnější
  pro
 
  začátečníky, je takový imperativní. :-)
 
 
 
  Doporučoval bych však zkusit pochopit eleganci toho druhého, který je
  IMO
 
  přístupnější pro zkušené a otevírá trochu jiný svět uvažování.
 
 
 
  Čitelnosti by pomohlo rozdělení na dva řádky (nejdřív nazvat
  generátor),
 
  což jistě Honza ví.
 
 
 
  Pokud tazateli zároveň půjde o zachování pořadí prvků, může se podívat
  po
 
  typu OrderedSet (http://code.activestate.com/recipes/576694/).
 
 
 
  Vl.
 
 
 
  On 6.2.2015 20:50, Honza Král wrote:
 
   tohle je kratka odpoved:
 
  
 
   import operator
 
   reduce(operator.and_, (set(l) for l in (list_a, list_b, list_c) if
   l))
 
  
 
   ale asi ne nejlepsi (neni prilis citelna)
 
  
 
  
 
   doporucil bych spis neco jako:
 
  
 
   sets = [set(l) for l in (list_a, list_b, ..) if l]
 
  
 
   result =lists.pop()
 
  
 
   for s in sets:
 
   result = s
 
   list_vysledny = list(result)
 
  
 
  
 
   Honza Král
 
   E-Mail: honza...@gmail.com
 
   Phone:  +420 606 678585
 
  
 
  
 
   2015-02-06 20:10 GMT+01:00 Marcus Scalpere marcus@gmail.com:
 
   Pěkný večer vinšuji,
 
   mám několik seznamů a potřebuji zjistit, které jsou a nejsou prázdné
   (to bych ještě dal) a pokud některé prázdne nejsou, tak je projít a 
   pokud
   jsou některé hodnoty ve VŠECH, tak je uložit.
 
   Něco jako:
 
   list_a = []
 
   list_b = [x, y, z]
 
   list_c = [x, y]
 
   .
 
   .
 
   .
 
   list_vysledny = [x, y]
 
  
 
   Snad jsem se vyjádřil jasně a srozumitelně. Děkuji mnohokráte
 
 
 
  ___
 
  Python mailing list
 
  pyt...@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

Re: [python] Seznamy

2015-02-06 Tema obsahu Honza Král
tohle je kratka odpoved:

import operator
reduce(operator.and_, (set(l) for l in (list_a, list_b, list_c) if l))

ale asi ne nejlepsi (neni prilis citelna)


doporucil bych spis neco jako:

sets = [set(l) for l in (list_a, list_b, ..) if l]

result =lists.pop()

for s in sets:
result = s
list_vysledny = list(result)


Honza Král
E-Mail: honza.k...@gmail.com
Phone:  +420 606 678585


2015-02-06 20:10 GMT+01:00 Marcus Scalpere marcus.scalp...@gmail.com:
 Pěkný večer vinšuji,
 mám několik seznamů a potřebuji zjistit, které jsou a nejsou prázdné (to bych 
 ještě dal) a pokud některé prázdne nejsou, tak je projít a pokud jsou některé 
 hodnoty ve VŠECH, tak je uložit.
 Něco jako:
 list_a = []
 list_b = [x, y, z]
 list_c = [x, y]
 .
 .
 .
 list_vysledny = [x, y]

 Snad jsem se vyjádřil jasně a srozumitelně. Děkuji mnohokráte
 ___
 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