Re: [python] Python 2 v utilitách...

2022-08-26 Tema obsahu Petr Messner
Ahoj.

asi bys neměl spoléhat na to, co vůbec "python" je, a už vůbec ne, že to je
python2, tak bych upravil shebangy:

#!/usr/bin/python -> #!/usr/bin/python2
#!/usr/bin/env python -> #!/usr/bin/env python2

Zajistit si, že ti balíčkovač neodinstaluje python2.7 (tj. říct mu, že ho
fakt chceš, ne že to je jen závislost něčeho, a to už jsi udělal), a můžeš
v klidu pokračovat v hraní na dinosaury :)

Alternativa k big bangu je upravovat kód (klidně pomalu a postupně) tak,
aby běžel pod 2 i 3, a až si budeš jistý, že to pod 3 běží v pohodě, tak to
pod ním začneš používat.

Petr



čt 25. 8. 2022 v 11:25 odesílatel Vladimír Macek  napsal:

> Otázka do pléna :-)
>
> Dnes mi Ubuntu nabídlo odinstalování obsolete balíku python-is-python2,
> jehož součástí je symlink
> /usr/bin/python -> python2
>
> Přestanou tím fungovat všechny skripty, které mají shebangy
>
> #!/usr/bin/python
> #!/usr/bin/env python
>
> plus cokoli, co prostě volá "python" a není ve virtualenvu.
>
> Zároveň je možné nainstalovat balík python-is-python3, což vyrobí symlink
> /usr/bin/python -> python3
>
> Tedy... grand switch. :-D
>
> Pokud se vymění systémový symlink, skončí pro danou mašinu tak trochu
> jedna
> éra. Asi nejsem sám, kdo má doma nebo na serverech mnoho svých utilit pro
> python2, které mají buď jeden z výše uvedených shebangů, některé nemají
> shebang vůbec a některé ani nemají příponu .py, protože jsou myšlené jako
> příkazy.
>
> Říkal jsem si "budeš mít prázdnou sekci Obsolete and locally created
> packages v aptitude", tak jsem balík python-is-python2 odstranil. Tím se
> mimochodem odstranil i celý python2.7! :-D Ten jsem rychle vrátil zpět. Na
> to připraven úplně nejsem.
>
> Pak jsem začal dumat, jak z hodiny na hodinu změnit vše na python3.
> Chvilku
> jsem procházel ten svůj swamp skriptů... dumal.
>
> Zkusil jsem hromadně 2to3, ale ten občas spadne, když nemůže nějaký soubor
> přečíst, shebangy zdá se neopravuje.. trochu mě to naprdlo... :-)
>
> Nakonec jsem si řekl, že na akci kulový blesk teď čas nemám. A protože
> python-is-python2 po odstranění v nabídce již není, vyrobil jsem systémový
> symlink python na python2 ručně.
>
> Moc pyšný na to nejsem, ale asi to budu řešit postupně.
>
> Jak jste to vyřešili vy?
>
> --
> Děkuji. S pozdravem
>
> Vladimír Macek | +420 608 978 164
>
> ___
> 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 a dcim

2020-01-26 Tema obsahu Petr Messner

> 26. 1. 2020 v 18:03, :
> 
> Mě to otevře třeba Nemo (asi jakýkoliv grafický správce souboru dle 
> distribuce) a mohu procházet soubory, ale cesta je třeba 
> "mtp://%5Busb%3A003,003%5D/Card" a v konzoli se k tomu nedostanu. Nebo aspoň 
> nevím jak.

To bude nejspíš přes Gnome Virtual File System (GVFS) nebo GIO. Jde to ovládat 
i z C – logicky, jinak by to nemohl používat Nemo :) No a co jde ovládat z C, 
jde ovládat i z Pythonu :) A i nějaké binárky pro ovládání z terminálu bych 
očekával, že budou existovat. 

Petr Messner



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

Visit: http://www.py.cz


Re: [python] nevím si rady

2019-10-10 Tema obsahu Petr Messner
Python nikde neříká, zda id dvou shodných řetězců budou nebo nebudou
stejná. Záleží na implementaci.

Jako náhled do správy paměti dobrý, ale spíš bych raději těmito věcmi
nikoho nemátl.

PM

st 9. 10. 2019 v 17:24 odesílatel Jaakubi  napsal:

> Nazdar mládenci,
>
> provádím "kritické čtení" svého překladu "http://howto.py.cz/index.htm";
>  a zjistil jsem, že nevím, zda je možné pro
> *řetězec* zadat přiřazení typu:
>
> a = "bau"; b = "bau" tak aby  id(a) != id(b).
>
> U seznamu se pro stejnou hodnotu vytvářejí dva objekty automaticky.
>
> a = [1, 2, 3]; b = [1, 2, 3]; id(a) != id(b)
>
> Srdečný dík, Tovim
>
>
>
> ___
> 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] vytváření souboru

2019-09-24 Tema obsahu Petr Messner
Já bych to spíš viděl na nedostatek paměti v procesu. Na 32bit systému
(případně pokud je to 32bit program na 64bit systému) se virtuální paměť
procesu musí vejít do 2 GB, a může nastat nějaká fragmentace, kdy např.
nemusí existovat souvislý volný úsek požadované velikosti. Ale nevím,
jestli je to tímto.

Každopádně zpracovávat soubor po částech je správné řešení, zvlášť pokud je
to něco takhle "jednoduchého". (Např. dělat join dvou souborů po částech už
je mnohem těžší.)

PM

út 24. 9. 2019 v 9:49 odesílatel zu1234  napsal:

> Myslím že to není můj případ:
> Soubor byl otevřen jednoduše, tedy předpokládám buffrovaně:
> with file(FFN_OUT, 'wb') as FI:
>
> Soubor nebyl tlačen po síti, byl umístěn lokálně na C: .
>
> Děkuji za zájem.
> Z vašich reakcí vyplývá že jsem asi neudělal žádnou primitivní chybu,
> jen jsem prostě šlápl mimo dálnici.
>
> Dne 24.9.2019 v 8:13 mtip napsal(a):
> > A neukládal si to po netu?
> >
> > On x86 (32-bit) or IA64 (64-bit) systems, the maximum buffer size is
> just under 64MB. For X64 systems, the maximum buffer size is just under
> 32MB.
> > The maximum unbuffered read and write size limits are imposed by the
> design of the IO manager inside the Windows executive.
> > When an application reads or writes files that are opened with
> FILE_FLAG_NO_BUFFERING,
> > the IO Manager locks the application's buffer into physical RAM and then
> maps the virtual addresses into physical addresses
> > to pass to the disk device by making a memory descriptor list (MDL).
> > The buffer size limitation comes from the maximum size MDL that the IO
> Manager will create.
> > The reason for the difference between platforms is the way the maximum
> buffer size is calculated from the memory page size and pointer size.
> > The IO Manager uses the following formula to compute the maximum size
> MDL:
> >
> > ((65535 - sizeof(MDL)) / sizeof(ULONG_PTR)) * PAGE_SIZE
> >
> > This formula has the following results:
> >
> > Processor Page Size Pointer Size MDL calculation
> >   = =
> >
> > x86 (32-bit) 4096 4 bytes ((65535 - 28) / 4) * 4096 = 67076096 bytes
> (63.97 MB)
> >
> > IA64 8096 8 bytes ((65535 - 48) / 8) * 8192 = 67051520 bytes (63.95 MB)
> >
> > X64 4096 8 bytes ((65535 - 48) / 8) * 4096 = 33525760 bytes (32MB - 28K)
> >
> > This limitation occurs when the file is opened with
> FILE_FLAG_NO_BUFFERING.
> >
> > Dne 23.09.2019 v 16:43 zu1234 napsal(a):
> >> W10 prof 32 bit
> >> Filesystém NTFS
> >> Python 2.7.15
> >> Opakuji: pokud soubor zapisuju po částech, tak bez problému.
> >> Znovu jsem to zkoušel zapsat vcelku: neprošlo cca 100MB.
> >>
> >> Dne 23.9.2019 v 16:14 Petr Messner napsal(a):
> >>> Na jakém systému? Linux?
> >>>
> >>> Nezapisoval jsi soubor větší než 4 GB na FAT32?
> >>>
> >>> Nezapisoval jsi do souboru otevřeném jen pro čtení?
> >>>
> >>> Nejsi na 32bit systému, nebo nemáš spuštěný 32bit Python?
> >>>
> >>> Jen tak na zkoušku jsem si v Pythonu 3 zkusil jedním write zapsat 20GB
> soubor, bez problému.
> >>>
> >>> PM
> >>>
> >>> po 23. 9. 2019 v 15:59 odesílatel zu1234  zu1...@seznam.cz>> napsal:
> >>>
> >>>  IOError, 22, Invalid argument
> >>>
> >>>
> >>>
> >>>  Dne 23.9.2019 v 13:10 Petr Messner napsal(a):
> >>>>  A jaký byl text toho IOError? To, že to nic neříká tobě,
> neznamená, že to nevysvětluje tu chybu :)
> >>>>
> >>>>  file.write je high level metoda, která volá OS syscall write
> tolikrát, kolik je potřeba, takže teoreticky jsi omezený jen velikostí RAM.
> >>>>
> >>>>  PM
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>  po 23. 9. 2019 v 11:43 odesílatel zu1234  <mailto:zu1...@seznam.cz>> napsal:
> >>>>
> >>>>  Při vytváření (binárního) souboru pomocí file.write() jsem
> se utkal s
> >>>>  nic neříkající chybou io error ... .
> >>>>  Nakonec jsem zjistit že větší soubor je nutno zapisovat po
> částech a ne
> >>>>  naráz.
> >>>>  Nenašel jsem jak zjistit jak největší může ta část být.
> >>>>  Program funguje, ale chtěl bych vědět víc.
> >>>>  Orientuje se někdo lépe?
> >>>

Re: [python] vytváření souboru

2019-09-23 Tema obsahu Petr Messner
A jaký byl text toho IOError? To, že to nic neříká tobě, neznamená, že to
nevysvětluje tu chybu :)

file.write je high level metoda, která volá OS syscall write tolikrát,
kolik je potřeba, takže teoreticky jsi omezený jen velikostí RAM.

PM







po 23. 9. 2019 v 11:43 odesílatel zu1234  napsal:

> Při vytváření (binárního) souboru pomocí file.write() jsem se utkal s
> nic neříkající chybou io error ... .
> Nakonec jsem zjistit že větší soubor je nutno zapisovat po částech a ne
> naráz.
> Nenašel jsem jak zjistit jak největší může ta část být.
> Program funguje, ale chtěl bych vědět víc.
> Orientuje se někdo lépe?
> Díky ZU
>
>
> ___
> 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] ANN: Pracovní nabídka - Prusa3D

2019-09-04 Tema obsahu Petr Messner
>
> Jsme striktně open source společnost, výsledky vaší práce budou uvolněny
> pod patřičnou svobodnou licencí a je tedy potřeba počítat s odezvou a
> komunikací v komunitě.


Pošli odkaz na kód :)

PM

st 4. 9. 2019 v 9:39 odesílatel Ondřej Tůma  napsal:

> Ahoj,
>
> sháním nového kolegu, který by se mnou stavěl staronovou cloud aplikaci
> u Prusa3D.
>
> Více informací zde:
>
> https://www.startupjobs.cz/nabidka/20453/python-vyvojar-cloudoveho-rizeni-3d-tisku
>
> značka: štěkám ale nekoušu
>
> Ondřej Tůma (mcbig)
>
> PS: sem kód style nacista, můj kód je nejlepší na světě :D
> PS2: TDD vítáno, když budeš lepší než já, nevadí, alespoň mám koho
> předhánět :D, když horší, tak tě naučím ;)
>
> --
> Ondřej Tůma 
> https://ipv6.mcbig.cz https://keybase.io/mcbigtwitter: mcbig_cz
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] xml parsování

2019-08-13 Tema obsahu Petr Messner
To je nějaký komunikační standard nebo tak něco? Máš odkaz na nějakou 
dokumentaci? Spíš tipuju, že existuje způsob, jak s tím pracovat rozumně, než 
odchytávat nějaký zmatek a snažit se naparsovat ten kousek, co se povedlo 
odchytit. Co je to za zařízení?

Petr Messner

13. 8. 2019 v 14:38, Ondrej Beranek :

> Ahoj,
> 
> Trosku to rozvedu, existuje zarizeni co generuje XML po multicast
> vysilani. problem je ze ho zapnes a ono jede a jede a jede co mas mas,
> co ne jsi ztratil. Kdyz se k nemu pripojis tak ti uz chybi hlavicka a
> chytis to v pulce neceho. tak zacnes chytat co mas a postupne skladas
> strom. Muze se ale stat (a stava se) ze se tagy kapku pokrizi a misto
> koncu vetvi /B /A se obevi /A /B s tim ze mezitim jeste litaji nejaka
> data. V takovemto pripade o situaci chci vedet a sam si ji podle uz
> nactene urovne osetrit. Cast dat jsou data predana takze si nejsem ani
> jist tim ze se struktura nemuze pozmenit...
> 
> 
> Aby toho nebylo malo nektere tagy pro jistotu nahodne nekonci vubec
> ale da se dopocitat jejich zanoreni. A podobne kratochvile.
> 
> Jo a zarizeni nemuzu restartovat.
> 
> 
> 13.08.19, starenka . :
>> tak spatny xml se obcas prihodi, kdyz to nejakej jouda generuje nejak
>> obskurne, nebo se ti usekne stream nebo nevimcoeste lxml ucrite umi
>> podoktorovat html, mozna i xml
>> ---
>> 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]
>> 
>> 
>> On Tue, Aug 13, 2019 at 1:06 PM Petr Messner 
>> wrote:
>> 
>>> Jak jako vadný tag? Potom to není XML.
>>> 
>>> Na HTML použij HTML parser.
>>> 
>>> Petr Messner
>>> 
>>> 13. 8. 2019 v 11:30, Ondrej Beranek :
>>> 
>>>> Ahoj,
>>>> 
>>>> když jste to tu tak nakousli, když bych chtěl zpracovávat xml streamy
>>>> předem neznámého obsahu, co na to použít ? Potřebuju aby se to
>>>> nesložilo když přijde nějaký vadný tag abych měl šanci si to ošetřit.
>>>> Tak než začnu psát kolo...
>>>> 
>>>> rainbof
>>>> 
>>>> 13.08.19, Petr Messner :
>>>>> V těchto případech je asi nejednodušší xpath. Minimálně lxml ho umí.
>>>>> 
>>>>> PM
>>>>> 
>>>>> út 13. 8. 2019 v 8:22 odesílatel Ctibor.Plasek
>>>>> >>> 
>>>>> napsal:
>>>>> 
>>>>>> Ahoj.
>>>>>> Mám takovýto xml soubor (viz.přiložený soubor)  - export z ffprobe.
>>>>>> Pro ty hodnoty, které jsou u >>>>> 
>>>>>> from xml.dom import minidom
>>>>>> xmldoc = minidom.parse('RainS02E06.mkv.xml')
>>>>>> streamlist = xmldoc.getElementsByTagName('stream')
>>>>>> for s in streamlist:
>>>>>>   print(s.attributes['index'].value)
>>>>>>   print(s.attributes['codec_name'].value)
>>>>>>   try:
>>>>>>   print(s.attributes['sample_rate'].value)
>>>>>>   except:
>>>>>>   print('none')
>>>>>> 
>>>>>> ale nevím jakým způsobem se dostat k těm "hlubším" hodnotám - např.
>>>>>> >>>>> index="1"
>>>>>> 
>>>>>> Mohli byste mi, prosím, poradit?
>>>>>> 
>>>>>> Děkuji Ctibor
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ___
>>>>>> 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] xml parsování

2019-08-13 Tema obsahu Petr Messner
Jak jako vadný tag? Potom to není XML.

Na HTML použij HTML parser. 

Petr Messner

13. 8. 2019 v 11:30, Ondrej Beranek :

> Ahoj,
> 
> když jste to tu tak nakousli, když bych chtěl zpracovávat xml streamy
> předem neznámého obsahu, co na to použít ? Potřebuju aby se to
> nesložilo když přijde nějaký vadný tag abych měl šanci si to ošetřit.
> Tak než začnu psát kolo...
> 
> rainbof
> 
> 13.08.19, Petr Messner :
>> V těchto případech je asi nejednodušší xpath. Minimálně lxml ho umí.
>> 
>> PM
>> 
>> út 13. 8. 2019 v 8:22 odesílatel Ctibor.Plasek 
>> napsal:
>> 
>>> Ahoj.
>>> Mám takovýto xml soubor (viz.přiložený soubor)  - export z ffprobe.
>>> Pro ty hodnoty, které jsou u >> 
>>> from xml.dom import minidom
>>> xmldoc = minidom.parse('RainS02E06.mkv.xml')
>>> streamlist = xmldoc.getElementsByTagName('stream')
>>> for s in streamlist:
>>>print(s.attributes['index'].value)
>>>print(s.attributes['codec_name'].value)
>>>try:
>>>print(s.attributes['sample_rate'].value)
>>>except:
>>>print('none')
>>> 
>>> ale nevím jakým způsobem se dostat k těm "hlubším" hodnotám - např.
>>> >> 
>>> Mohli byste mi, prosím, poradit?
>>> 
>>> Děkuji Ctibor
>>> 
>>> 
>>> 
>>> 
>>> ___
>>> 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] xml parsování

2019-08-13 Tema obsahu Petr Messner
V těchto případech je asi nejednodušší xpath. Minimálně lxml ho umí.

PM

út 13. 8. 2019 v 8:22 odesílatel Ctibor.Plasek 
napsal:

> Ahoj.
> Mám takovýto xml soubor (viz.přiložený soubor)  - export z ffprobe.
> Pro ty hodnoty, které jsou u 
> from xml.dom import minidom
> xmldoc = minidom.parse('RainS02E06.mkv.xml')
> streamlist = xmldoc.getElementsByTagName('stream')
> for s in streamlist:
> print(s.attributes['index'].value)
> print(s.attributes['codec_name'].value)
> try:
> print(s.attributes['sample_rate'].value)
> except:
> print('none')
>
> ale nevím jakým způsobem se dostat k těm "hlubším" hodnotám - např.
> 
> Mohli byste mi, prosím, poradit?
>
> Děkuji Ctibor
>
>
>
>
> ___
> 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] 96 TEU priplouva napyve

2019-03-15 Tema obsahu Petr Messner
Presne tak! At prijde jen ten, kdo ma opravdovy nefalsovany zajem - takovy
(takova) se prece nenecha odradit pouhym "ne" :)

Ja bych to potvrzovani ucasti dal povinne. Requestem na HTTP API. Ty
kontejnery taky ovladaji rucne z command lajny jen zelenaci, ze jo. :)

PM

pá 15. 3. 2019 v 0:14 odesílatel starenka .  napsal:

> Ahoj vsem!
>
> Jo, srazy zacinaji bejt posledni dobou dost popularni, takze kdyz vidim
> nejaky tema, ktery by pritahlo dalsi lidi, snazim se je zastrasit strohou
> nebo dokonce zadnou odpovedi. Ty, ktery to neodstrasi, desim primo na miste
> svejma zpusobama ;)
>
> s.
>
> ---
> aknerats[::-1]
>
> On Thu, Mar 14, 2019, 23:43 Nora Kořánová  wrote:
>
>> Čau Michale,
>> určitě tam běž, účast nepotvrzuj a nenech se zastrašit strohými
>> odpověďmi. (Omg, to jsou způsoby)
>> Já jsem na kontejnery zvědavá, takže asi dorazím.
>>
>> Mějte se!
>>
>> No.
>>
>> On Thu, Mar 14, 2019, 23:31 starenka .  wrote:
>>
>>> Ne
>>>
>>> ---
>>> aknerats[::-1]
>>>
>>> On Thu, Mar 14, 2019, 23:10 Michal Porteš  wrote:
>>>
 Ahoj, rád bych se přišel podívat, ale je to tak na 50 % (zrovna středy
 jsou pro mě trochu problematické). Je nutné potvrzovat účast?

 Michal

 -- Původní e-mail --
 Od: Jiri Barton 
 Komu: Konference PyCZ , Django Cs <
 django...@googlegroups.com>
 Datum: 14. 3. 2019 13:47:03
 Předmět: [python] 96 TEU priplouva napyve

 Ano, rec bude o kontejnerech, a to softwarovych - na 96. Python srazu v
 Praze, jiz pristi stredu, 20. 3. 2018 na Venecku, Ostrovskeho 38a,
 Praha
 5 - LOLZ jako vzdy od 19:30.

 Ucast prislibili i ucastnici kontejner meetupu, a tak se budeme moct
 tesit napr. na **Self Operated Python apps in Cloud native world**

 Pokud byste chteli sami s necim prispet k diskuzi nejen po skonceni
 prednasek, napiste se na lightning talk tady https://bit.ly/prpylight.
 Muze to by o kontejnerech, ale samozrejme o cimkoliv jinem!


 whiskybar

 https://www.meetup.com/Prague-Python-Meetup-NaPyVo/
 https://pyvo.cz/praha-pyvo/

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

 Visit: http://www.py.cz

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

 Visit: http://www.py.cz

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

Visit: http://www.py.cz


Re: [python] Informace o příkazu pip a pip3

2019-02-05 Tema obsahu Petr Messner
Zajímavé. Já vždy používal příkaz which, ale ten asi není dost košer:
https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then

út 5. 2. 2019 v 21:47 odesílatel Michal Porteš  napsal:

> To by odpovídalo, teď už se mi u obou ukazuje hashed.
>
> Už nevím přesně, ale "command -v" jsem našel asi tady:
> https://docs.python-guide.org/starting/install3/linux/
>
> a "command -V" už jsem vyčetl sám z helpu.
>
> Díky za odpovědi.
>
> Michal
>
> -- Původní e-mail --
> Od: Petr Viktorin 
> Komu: python@py.cz
> Datum: 5. 2. 2019 15:56:32
> Předmět: Re: [python] Informace o příkazu pip a pip3
>
> > út 5. 2. 2019 v 9:49 odesílatel Michal Porteš  > > napsal:
> >
> > Dobrý den,
> > omlouvám se, pokud se můj první dotaz týká spíš Linuxu než Pythonu,
> > ale uměl by mi někdo vysvětlit, co že jsem se to vlastně dozvěděl z
> > následujících příkazů v terminálu?
> >
> >
> > $ command -v pip
> > /home/michal/.local/bin/pip
> > $ command -v pip3
> > /home/michal/.local/bin/pip3
> >
> > $ command -V pip
> > pip is hashed (/home/michal/.local/bin/pip)
> > $ command -V pip3
> > pip3 is /home/michal/.local/bin/pip3
> >
> >
> > Konkrétně, proč je u pip ta zmínka o "hashed", zatímco u pip3 nikoliv?
>
> "hashed" znamená že jsi ten příkaz nedávno spustil. (Bash si zapamatuje
> kde příkaz našel, aby ho příště nemusel hledat znovu. "Hash" je v tomhle
> případě termín pro datovou strukturu, které se v Pythonu říká "slovník",
> `dict`.)
>
> V praxi mezi "is hashed" a "is" není moc velký rozdíl. (Má to hodnotu
> kdybys měnil $PATH – např. vývojáři nástrojů jako "virtualenv" musí
> tohle hashování brát v potaz.)
>
>
>
> Můžu se zeptat, v jakém návodu jsi našel `command -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


Re: [python] Informace o příkazu pip a pip3

2019-02-05 Tema obsahu Petr Messner
Ahoj!

man bash, sekce command:

   command [-pVv] command [arg ...]
  Run  command  with  args  suppressing  the normal shell
function
  lookup.  Only builtin commands or commands found in the PATH
are
  executed.   If the -p option is given, the search for command
is
  performed using a default value for PATH that is  guaranteed
to
  find  all  of  the  standard  utilities.  If either the -V or
-v
  option is supplied, a description of command is printed.  *The
-v*
*  option  causes  a single word indicating the command or
filename*
*  used to invoke command to be displayed; the -V option
produces a*
*  more  verbose  description.*  If the -V or -v option is
supplied,
  the exit status is 0 if command was found, and  1  if  not.
 If
  neither option is supplied and an error occurred or command
can‐
  not be found, the exit status is 127.  Otherwise, the exit
sta‐
  tus of the command builtin is the exit status of command.

Hm, tam to moc vysvětlené není.

Ale asi to bude tohle:

https://unix.stackexchange.com/questions/105876/what-does-rm-is-hashed-mean

PM

út 5. 2. 2019 v 9:49 odesílatel Michal Porteš  napsal:

> Dobrý den,
> omlouvám se, pokud se můj první dotaz týká spíš Linuxu než Pythonu, ale
> uměl by mi někdo vysvětlit, co že jsem se to vlastně dozvěděl z
> následujících příkazů v terminálu?
>
>
> $ command -v pip
> /home/michal/.local/bin/pip
> $ command -v pip3
> /home/michal/.local/bin/pip3
>
> $ command -V pip
> pip is hashed (/home/michal/.local/bin/pip)
> $ command -V pip3
> pip3 is /home/michal/.local/bin/pip3
>
>
> Konkrétně, proč je u pip ta zmínka o "hashed", zatímco u pip3 nikoliv?
>
> Díky.
>
> Michal
>
> ___
> 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] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Messner
 nějaký
pomocný soubor s číslem verze.

Např. když si do requirements.txt napíšu "
http://cdn.example.com/foobar-1.0.2-py3-none-any.whl";, případně "
https://github.com/foo/bar/archive/v.1.0.2.zip#egg=foobar==1.0.2";, tak pip
z toho dokáže tu verzi odvodit a když znovu spustím "pip install -r
requirements.txt", tak už podruhé nic nestahuje. Tak něco podobného můžeš
použít

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

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Messner
To je na nějakých desktopech? Na Windows nebo tak něčem? Jde o aktualizaci
programů v noci, nebo se fakt musí řešit nějaké HA/nepřerušený běh?

Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují?

PM




po 3. 12. 2018 v 16:30 odesílatel Petr Blahoš  napsal:

> Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze
> balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně
> převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, ale
> musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu,
> shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty
> počítače
> musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí,
> tak
> si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak
> dozvědět,
> že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má
> zaktualizovat.
>
> --
> Petr
>
>
>
> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
> wrote:
>
>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
>> Tohle? Nebo něco jiného?
>>
>> PM
>>
>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>>
>>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
>>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
>>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>>
>>> --
>>> Petr
>>>
>>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
>>> wrote:
>>>
>>>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>>>
>>>>   Jirka
>>>>
>>>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>>>
>>>>> Ahoj,
>>>>>
>>>>> tak už máme solidně fungující pip, takže když uděláme pip install -U
>>>>> balíčekwhl,
>>>>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
>>>>> běžící aplikaci,
>>>>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
>>>>> kterémžto případě aplikaci
>>>>> ukončím, zaktualizuju, a znovu spustím).
>>>>>
>>>>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
>>>>> nainstalovaná verze
>>>>> balíčku, a jestli verze na vzdáleném úložišti je novější?
>>>>>
>>>>> Díky,
>>>>> Petr
>>>>> --
>>>>> https://blahos.com/
>>>>> https://traceability.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
>>>>
>>>
>>>
>>> --
>>> https://blahos.com/
>>> https://traceability.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
>>
>
>
> --
> https://blahos.com/
> https://traceability.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] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Messner
Když uděláš novou verzi aplikace, tak v následujícím deploy procesu (nějaký
skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. Tohle?
Nebo něco jiného?

PM

po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:

> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>
> --
> Petr
>
> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
> wrote:
>
>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>
>>   Jirka
>>
>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>
>>> Ahoj,
>>>
>>> tak už máme solidně fungující pip, takže když uděláme pip install -U
>>> balíčekwhl,
>>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
>>> běžící aplikaci,
>>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto
>>> případě aplikaci
>>> ukončím, zaktualizuju, a znovu spustím).
>>>
>>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
>>> nainstalovaná verze
>>> balíčku, a jestli verze na vzdáleném úložišti je novější?
>>>
>>> Díky,
>>> Petr
>>> --
>>> https://blahos.com/
>>> https://traceability.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
>>
>
>
> --
> https://blahos.com/
> https://traceability.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] jak dostat do promenne datum modifikace souboru

2018-10-02 Tema obsahu Petr Messner
Způsobů je víc, ale pokud si cesty k souborům vyjadřuješ jako objekt Path
(z modulu pathlib), což mi přijde dnes jako většinou nejlepší způsob práce
se soubory, tak ten má metodu stat.

https://docs.python.org/3/library/pathlib.html#pathlib.Path.stat

út 2. 10. 2018 v 20:00 odesílatel pythoncaha  napsal:

> Poradi mi zde nekdo, jak dostat do promenne datum vytvoreni, nebo
> modifikace souboru? Uz hledam na webu dlouho a odpoved nenachazim. diky za
> radu. Ondrej
> ___
> 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] Nejvyšší číslo z databáze - řazení

2018-08-28 Tema obsahu Petr Messner
Dej si pozor, ať nespojuješ nesouvisející hodnoty high/low z různých
tickerů.

PM

po 27. 8. 2018 v 19:25 odesílatel  napsal:

> =  FBLL (SP100.csv) ===
>  Date TickerOpenHigh Low   Close SMA
> 0  2018-08-24AGN  186.71  187.44  185.62  186.86  168.10
> 1  2018-08-24   AMGN  196.88  197.50  195.60  196.64  183.86
> 2  2018-08-24 CL   66.55   67.01   66.34   66.88   65.53
> 3  2018-08-24DIS  111.63  112.70  111.44  111.93  105.80
> 4  2018-08-24FOX   44.71   44.78   44.52   44.58   41.81
> 5  2018-08-24   FOXA   45.25   45.36   45.15   45.17   42.24
> 6  2018-08-24 KO   45.65   45.80   45.58   45.63   44.13
> 7  2018-08-24LMT  320.00  321.39  318.72  321.29  320.01
> 8  2018-08-24 MO   59.25   59.37   58.55   58.78   57.88
> 9  2018-08-24WMT   95.09   95.66   94.35   94.95   86.88
>
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Nejvyšší číslo z databáze - řazení

2018-08-28 Tema obsahu Petr Messner
To byla ukázka. Tahej si to z databáze, ze souboru, z web API, odkudkoliv.
to pd.read_csv vrací DataFrame. Je na tobě, jestli a jaký si uděláš jiný
způsob získání/vytvoření toho DataFrame.

Ten sloupec "n" je taky jenom pro ukázku. Měj tam sloupce jaké chceš a
dělej si s nimi, co chceš :)

PM

po 27. 8. 2018 v 19:20 odesílatel  napsal:

> Petr Messner: Děkuji moc, to vypadá slibně.
>
> Jen mám otázku k:
>
> csv_data = dedent('''\
> n;low;high;close
> 1;100;120;110
> 2;110;130;120
> 3;115;135;125
> 4;110;140;140
> 5;100;130;120
> 6;100;120;100
> 7;150;160;160
> ''')
> df = pd.read_csv(StringIO(csv_data), sep=';')
>
> .. za dedent musím hodnoty vypisovat ručně? Nelze je natáhnout z
> databáze? Nevím který "n" bude splňovat ten den podmínku. "N" se každý den
> mění.
> ___
> 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] Nejvyšší číslo z databáze - řazení

2018-08-24 Tema obsahu Petr Messner
Udělal bych to takhle:
https://gist.github.com/messa/bf39800e3493896a6d8b36dabd78a87f

Je to ono?

Poznámka: náhled Jupyter notebooku v Github gistu nefunguje na mobilu,
musíte si to otevřít v plnotučném prohlížeči

PM

čt 23. 8. 2018 v 22:45 odesílatel  napsal:

> Děkuji za rady a trpělivost, kterou se mnou máte, vážím si toho :)
> Už jsem zase o kousek chytřejší, ale jen nevím, jak vypočítat ty hodnoty.
>
> Mám sloupec High, mám sloupec Low a potřeboval bych s nimi počítat.
>
> (# 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za
> poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky) )
>
> Možná to vůbec nejde
> ___
> 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] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu Petr Messner
Ten kód moc smysl právě nedává. Třeba 'High'.shift(4) je blbost, string
žádnou metodu shift nemá.

Dokumentace pandas.DataFrame.sort_values je tady:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

Vypadá to, že když chceš v pandasu sortit, tak musíš mít v nějakém sloupci
už připravené hodnoty, podle kterých se má sortit - že to neumí vzít Python
funkci, jako to umí normální sorted nebo list.sort v Pythonu. Což dává
smysl, protože DataFrame je specializovaný na rychlost provádění
numerických operací a snaží se proto právě vyhýbat volání Python funkcí pro
každý řádek zvlášť.

Unit test znamená, že vezmeš nějaký ukázkový vstup, pustíš na něj tvoji
funkci, a výstup té funkce porovnáš s očekávaným výstupem. Podobně tak
kdybys nám sem poslal ukázku vstupu a co si představuješ, že by mělo být
výstupem, tak by bylo jednodušší ti poradit. Nebo jestli jedeš podle
nějakého tutorialu, návodu apod.

Je i možné, že by to v čistém Pythonu šlo snadněji než přes DataFrame, a až
bys to rozběhal, tak potom to můžeš zkusit zmigrovat do DataFrame, pokud by
to bylo z nějakého důvodu potřeba.

PM

st 22. 8. 2018 v 23:15 odesílatel  napsal:

> Jirka Vejrazka: Používám sqlite3 a pandas,  tahám z yahoo finance.
>
> Petr Messner: Omlouvám se, nevím co nebo jak udělat unit test. Tohle je
> konkrétní případ.
>
> Každý den stáhnu data z yahoo finance, naplním databázi, z které potom
> filtruji data, které splňují podmínku (- vypíše konkrétní položky) a ty
> chci právě seřadit podle "PositionScore".
>  Snad to dává aspoň trochu smysl.
> ___
> 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] Nejvyšší číslo z databáze - řazení

2018-08-22 Tema obsahu Petr Messner
Na první pohled to vypadá na nějaký Pandas. 

Radku, neměl bys raději nějaký příklad, s konkrétními hodnotami, na kterém by 
bylo vidět, co to má dělat? :) (prostě unit test)

Petr Messner

22. 8. 2018 v 21:12, Jirka Vejrazka :

> Promin, tohle je syntaxe, kterou jsem nikdy nevidel. Mohl bys napsat, jakou 
> databazi pouzivas a jakou knihovnu pro tahani dat?
> 
>   Jirka
> 
>> On Wed, 22 Aug 2018 at 21:00,  wrote:
>> Dobrý den,
>> mám tady další problém, který se mi nedaří rozluštit.
>> 
>> Mám určitou databázi dat a ty data, které splňují určité podmínky se mi 
>> vypisují. 
>> 
>> Tyto vypsané data bych chtěl ještě seřadit dle dalšího kritéria. Jenže 
>> nedaří se. Viz níže kód.
>> 
>> Co dělám špatně?
>> 
>> 
>> # 100 * (Nejvyšší High za poslední 4 úsečky – Close)/(Nejvyšší High za 
>> poslední 4 úsečky/Nejnižší Low za poslední 4 úsečky)
>> 
>> # výpočet PositionScore
>> def POSscore (data):
>>   val = 100 * (max(data['High'.shift(4)]) 
>> - 'Close')/(max(data['High'.shift(4)]) / (min(data['High']))
>> 
>>   return val
>> 
>> fbll = fbll.sort_values(by=['POSscore'], ascending=False)
>> 
>> Děkuji za případnou další pomoc.
>> ___
>> 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] Vyhodnocení jednoduchých výrazů

2018-08-22 Tema obsahu Petr Messner

> vstup bude asi celkem malý a gramatika ne moc kompletní,

Chtěl jsem napsat “komplexní”.


___
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 Petr Messner
Ahoj,

teoreticky nejlepší přístup je vyrobit si parser, který ti ten výraz převede na 
AST strom, a ten strom pak “provést”, což je vlastně jen průchod do hloubky. 

Ten parser si můžeš vyrobit sám implementací nějakého parser algoritmu - 
vzhledem k tomu, že vstup bude asi celkem malý a gramatika ne moc kompletní, 
tak je to celkem schůdná cesta. Nebo můžeš použit nějakou knihovnu pro tvorbu 
parserů (jsou i pro Python), no a nebo můžeš využít přímo parser Pythonu - 
modul ast. Rozdíl oproti eval() pak bude ten, že bude pod tvoji kontrolou, co 
to bude dělat, takže hodně snížíš bezpečností rizika. 

Když trochu pogooglím, tak najdu:

https://gist.github.com/ircmaxell/1232629

https://stackoverflow.com/q/114586/196206

https://stackoverflow.com/q/594266/196206

https://gist.github.com/mgood/3276107

 ...a spousta dalšího 

Petr Messner

22. 8. 2018 v 9:30, Petr Blahos :

> 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.
> 
> Díky,
> Petr
> --
> http://www.blahos.com/
> http://traceability.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] Jednostránkový cheat-sheet v češtině

2018-08-20 Tema obsahu Petr Messner
Šlo by to udělat tak, že by sis vygooglil nějaký vhodný cheatsheet v
angličtině a potom bychom se ho pokusili přeložit?

PM

po 20. 8. 2018 v 8:31 odesílatel Petr Blahos  napsal:

> Přátelé,
>
> nemáte někdo jednostránkový (klidně oboustraný) papír (pdfko) v češtině
> s popisem struktury základních řídících struktur v pythonu? (cykly,
> if-else,
> definice funkcí, volání funkcí)
>
> Potřeboval bych to vytisknout, a když se mě díte zeptá, jak se dělá tohle,
> tak si to tam společně najdeme.
>
> Díky,
> Petr
> --
> http://www.blahos.com/ 
> http://traceability.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] Plánovač úloh a Python

2018-07-23 Tema obsahu Petr Messner
V Pythonu je několik způsobů, jak číst soubor (nebo zapsat, to je podobné)
- asi nejjednodušší je:

from pathlib import Path
obsah_souboru = Path(r'cesta\soubor.txt').read_text()

Lze si soubor otevřít a pracovat s ním nějak složitěji - kombinovat read,
write, flush, seek, zamykat...:

f = open(r'cesta\soubor.txt')
try:
obsah_souboru = f.read()
finally:
f.close()

Je výhodnější použít with konstrukci, která za tebe zavolá to close:

with open(r'cesta\soubor.txt') as f:
obsah_souboru = f.read()

To Path.read_text ve skutečnosti dělá přesně tohle - viz zdroják:
https://github.com/python/cpython/blob/147d95511f59cfdd2d522f9d736f2335457bae20/Lib/pathlib.py#L1174

A nebo můžeš jít low-level a přímo volat syscally operačního systému - ale
pak si musíš hlídat chybové stavy, řešit si sám bufferování a tak, asi je
vidět, proč se to takhle obvykle nedělá:

import os
fd = os.open(r'cesta\soubor.txt', os. O_RDONLY)
try:
obsah_souboru = []
while True:
data = os.read(fd, 65536)
if data == b'':
break
obsah_souboru.append(data)
obsah_souboru = b''.join(obsah_souboru).decode()
finally:
os.close(fd)

Raději spíš napiš, čeho chceš dosáhnout a kam už ses dostal.

Zkus si o tom něco přečíst:

- https://naucse.python.cz/course/pyladies/beginners/files/
- https://docs.python.org/3/library/pathlib.html
- https://python101.pythonlibrary.org/chapter8_file_io.html
- https://knihy.nic.cz/files/edice/python_3.pdf

Petr Messner

po 23. 7. 2018 v 16:55 odesílatel  napsal:

> Dává to smysl.
>
> Jen nechápu poslední odstavec. Nevím, kam napsat
> open('C:/data/soubor.txt').
> Nemělo by tam být spíš něco jako write('a cesta kam se uloží, aby to
> nebylo system32')?
> ___
> 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] Plánovač úloh a Python

2018-07-23 Tema obsahu Petr Messner
Co to znamená - že když otevřeš soubor přes open(“data.txt”), tak se otevře 
někde ve windows\system? No tak ho otvirej s plnou cestou, ne? :) 
open(r“c:\nekde\data.txt”). 

Nebo si nastav current working directory:
https://docs.python.org/3/library/os.html#os-file-dir

Viz taky modul pathlib:
https://docs.python.org/3/library/pathlib.html

Petr Messner

23. 7. 2018 v 8:55, radekmes...@gmail.com:

> Dobrý den,
> předem  bych se chtěl omluvit za moji totální neznalost jazyka pythonu, ale 
> každý někdy začínal :)
> 
> Mám funkční skript, který potřebuji spouštět v určitý čas. Proto jsem si 
> vytvořil ve Win 7 událost. Jenže po spuštění skriptu se data ukládají do 
> složky windows\system32 a ne do složky Pythonu, kam se data ukládají, když 
> skript spustím přes IDLE. Potřebuji, aby se data ukládaly právě do složky 
> Python. 
> 
> Zkoušel jsem zapínat/vypínat kolonku "Spustit s nejvyššími oprávněními", 
> přihlásit se jako standardní uživatel/administrátor, ale nic nepomohlo.
> 
> Nemáte někdo prosím nápad, jak to vyřešit?
> Děkuji mnohokrát.
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Těžba dat, natural language processing projekt

2018-07-01 Tema obsahu Petr Messner
Mě to zní jako křížení leady.cz, dativery.com a zákaznického CRM. Může to
asi trochu pomáhat se sales.

PM

ne 1. 7. 2018 v 10:05 odesílatel Matěj Cepl  napsal:

> On 2018-06-25, 10:38 GMT, Pavel Zábrodský wrote:
> > Automaticky těžíme podpisy z mailů, ukládáme je do sdílené
> > databáze a pak kontakty obohacujeme o veřejné informace z internetu.
>
> Takže to je příprava databáze na spamy, že?
>
> Matěj
> --
> https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz
> GPG Finger: 3C76 A027 CA45 AD70 98B5  BC1D 7920 5802 880B C9D8
>
> Afraid to die alone?
> Become a bus driver.
>   -- alleged easter egg in notepad++
> ___
> 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] socket.socket

2018-05-18 Tema obsahu Petr Messner
Není to tohle?

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/3076a9cd-57a0-418d-8de1-07adc3b486bb/socket-fails-with-error-10022-when-application-is-run-from-certain-network-shares-on-vista-and?forum=wsk

PM

Dne 18. května 2018 14:08 ZU1234  napsal(a):

> Zdravím vespolek.
>
> Mám takový zajímavý problém: mám program exe (vyrobený pomocí py2exe,
> python 2.7.8) obsahující
>
> socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>
> Pokud jej spustím z lokálního disku jede správně.
>
> Pokud tentýž program spustím se sdíleného disku skončí chybou:
>
> error 10022
> Byl zadán neplatný argument
>
> Potkal někdo něco podobného?
>
> Díky.
>
>
> ___
> 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] &soutez :-)

2018-04-15 Tema obsahu Petr Messner
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ý 
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  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


Re: [python] &soutez :-)

2018-04-10 Tema obsahu Petr Messner
Nevim, neznam, asi uz ani nejsem webovy vyvojar :D

Navrhuju to schovat do funkce:

reload_redirect['Location'] = append_redirect_param(
reload_redirect['Location'], 'param=1')

def append_redirect_param(...):



Petr M.


2018-04-10 13:09 GMT+02:00 Vláďa Macek :

> Zdar,
>
> vyhlasuju soutez o nejhezci alternativu pro toto:
>
> reload_redirect['Location'] += '#param=1'.replace('#', '&' if '?' in
> reload_redirect['Location'] else '?')
>
> Webovi vyvojari jiste zalezitost znaji.
> Tesim se ;-)
>
> Vlada
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] table querying

2018-03-06 Tema obsahu Petr Messner
Něco takového?

http://harelba.github.io/q/

Jinak příklad s tím jq by vypadal takhle:

echo -e 'model,variant,count,description\nTZX,v1,12,foo\nXX,n,3,bar' |
./csv_to_jsonl.py | jq 'select((.model|test("^TZ")) and (.count|tonumber >
10))'

(formát výstupu se dá změnit)

Dne 6. března 2018 13:56 Vláďa Macek  napsal(a):

> Děkuju všem reagujícím.
>
> In-memory SQLite, Python samotný, Pandas, shell, XPath, ... ano, to jsou
> všechno validní záležitosti.
>
> Měl jsem však před očima něco takového, co když dostane na vstupu tabulku,
> kde první řádek je záhlaví
>
> MODEL | VARIANT | COUNT | DESCRIPTION
>
> a dostane stringové query třeba takto jednoduché
>
> 'MODEL =~ ^TZ && int(COUNT) > 10'
>
> tak vygeneruje všechny řádky, které tomu odpovídají. Když máte data v
> hromadě tabulek s nestabilní strukturou, které upravuje víc lidí přes cloud
> a váš sw s tím má pracovat nebo nad tím něco ladit, ne vždy to dělají
> programátoři, pak takováto jednoduchost může být přínosem.
>
> Jen mě napadlo, jestli o něčem podobném zavedeném nevíte. (Sám si
> samozřejmě během 20 sekund poradím v Pythonu s čímkoli.)
>
> Dík,
>
> V.
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] table querying

2018-03-06 Tema obsahu Petr Messner
Dne 5. března 2018 16:36 Petr Viktorin  napsal(a):

> Nebo s Pandas...
>
> import pandas
> pandas.Series(range(10)).map('map mame {}'.format)
>
>
Ano, to je ono :) Díky za doplnění.

Na takovémhle API se mi líbí, že když k tomu chci něco přidat, tak to
prostě přidám na konec, nemusím pak ještě lézt na začátek řádky a doplnit
tam závorku nebo nějakou omáčku. Příklad:

tady_mi.neco_vraci_data()

Teď si usmyslím, že to chci fitrovat, takže v (čistém) Pythonu musím udělat
něco takového:

*[x for x in *tady_mi.neco_vraci_data()* if x.něco()]*
nebo
*filter(lambda x: x.něco(), *tady_mi.neco_vraci_data()*)*

A když si rozmyslím, že s tím chci dělat ještě něco dalšího, třeba sesortit
a pak nějakou transformaci:

[nějaká_transformace(x) for x in sorted(x for x in
tady_mi.neco_vraci_data() if x.něco())]
nebo
map(nějaká_transformace, sorted(filter(lambda x: x.něco(),
tady_mi.neco_vraci_data(

Uf, začíná to být nepřehledné :)

Jeden způsob, jak toto řešit, je API, kdy vrácený objekt (array nebo nějaký
stream) má metody map, filter, sort apod.

tady_mi.neco_vraci_data().filter(x =>
x.něco()).sort().map(nějaká_transformace)

Něco takového tedy zřejmě umí Pandas, nebo např. SQLAlchemy Query objekt.

Také si všimněte, že je zde přirozené pořadí operací: a.b.c.d místo
d(c(b(a(

Druhý způsob je obohatit programovací jazyk o nějaký *pipe operátor*, jako
to má např. F#, Elixir a určitě i další jazyky (následující ukázka je jen
pseudokód):

tady_mi.neco_vraci_data() |> filter(x => x.něco()) |> sort |>
nějaká_transformace

Tenhle přístup je podle mě čitelnější a pokud si ho rozepíšete na více
řádků, tak při vývoji a ladění toho kódu můžete jednotlivé kroky snadno
přeskočit zakomentováním celého řádku - nemusíte lítat po složitém výrazu
sem tam a ubírat/přidávat závorky nebo list comprehension omáčku.

No a unixový shell funguje přesně stejně :) ./dej_mi_data | grep něco |
sort | sed ...

Pipe operátor teda v Pythonu není, a ani nevím, jestli by mělo smysl ho tam
přidávat z důvodu, aby Python nebyl zbytečně zesložiťován. Ale chtěl jsem
tu ukázat i jiný přistup.

Ani ten shell bych nepodceňoval - v mém minulém mailu jsem napsal o utilitě
jq. Díky přístupu, když si zpracování dat udělám pomocí příkazů v shellu,
pak můžu použít nástroje parallel, sort, gzip, ssh, sed, awk apod. a data
pak můžu zpracovávat v gigabajtech za sekundu, což by v samotném Pythonu
bylo velmi náročné (existuje modul multiprocess, ale už to pak zdaleka
nebude oneliner). Zase není potřeba kvůli všemu pouštět Hadoop :)

Tohle je oproti původnímu dotazu už docela offtopic, pro nějaké občasné
zpracování CSV z google spreadsheetu to je overkill, ale zase jsem se chtěl
rozepsat, jak nad tím přemýšlím a jaké jsou možnosti. Klidně na to nějak
reagujte. Napadlo mě třeba, že by se dala napsat nějaká Python funkce,
která by přijímala data a transformace v parametrech a vytvořila by právě
tu pipe mezi nimi.

Taky je možná problém s tím, že jsem si všiml, že pro lidi je funkce, která
přijímá nebo vrací funkci, aspoň ze začátku ne úplně stravitelná, natož
ještě s generátory, iterátory... Možná by toto mohlo být více probíráno v
kurzech Pythonu.

Petr Messner


>
> On 03/05/18 16:23, starenka . wrote:
>
>> In [2]: list(map(lambda x: 'map mame %s' % x, range(10)))
>> Out[2]:
>> ['map mame 0',
>>   'map mame 1',
>>   'map mame 2',
>>   'map mame 3',
>>   'map mame 4',
>>   'map mame 5',
>>   'map mame 6',
>>   'map mame 7',
>>   'map mame 8',
>>   'map mame 9']
>>
>>
>> ---
>> In Perl you shoot yourself in the foot, but nobody can understand how you
>> did it. Six months later, neither can you. | print 'aknerats'[::-1]
>>
>> 2018-03-05 16:02 GMT+01:00 Petr Messner > petr.mess...@gmail.com>>:
>>
>> No, je na to jeden takový super jazyk - Python :)
>>
>> I když teda existuje jazyk, ve kterém se nějaké adhoc datové
>> transformační pipelines dělají ještě lépe - Javascript. Škoda, že
>> Python list nemá metodu map, musí se to dělat minimálně přes list
>> comprehensions, což je sice obecnější, ale o něco pomaleji se to píše.
>>
>> Pro old-schoolery potom grep, sed a awk.
>>
>>
>> Dne 5. března 2018 14:31 Vláďa Macek > <mailto:ma...@sandbox.cz>> napsal(a):
>>
>> Zdar,
>>
>> mějme tabulková data načtená třeba z CSV nebo Google Tabulku.
>> Víte o
>> elegantním nástroji (modulu) pro Python implementujícím jednoduchý
>> dotazovací jazyk?
>>
>> Jako "dej mi všechny řádky, které mají ve sloupci B hodnotu V
>> (příp.
>> regexp), ve sloupci C nemají hodnoty

Re: [python] table querying

2018-03-05 Tema obsahu Petr Messner
Pokud si CSV převedeš do JSONL, což je podle mě vhodnější formát pro data,
tak potom doporučuji utilitu jq, je to něco jako XPath pro JSON:
https://stedolan.github.io/jq/ A díky streamování můžeš i zpracovávat data,
která se ti nevejdou ani do paměti, a paralelizovat přes všechna CPU (nebo
si CPU vypůjčit z cloudu), kdyby náhodou někdy bylo potřeba.

Dne 5. března 2018 16:02 Petr Messner  napsal(a):

> No, je na to jeden takový super jazyk - Python :)
>
> I když teda existuje jazyk, ve kterém se nějaké adhoc datové transformační
> pipelines dělají ještě lépe - Javascript. Škoda, že Python list nemá metodu
> map, musí se to dělat minimálně přes list comprehensions, což je sice
> obecnější, ale o něco pomaleji se to píše.
>
> Pro old-schoolery potom grep, sed a awk.
>
>
> Dne 5. března 2018 14:31 Vláďa Macek  napsal(a):
>
> Zdar,
>>
>> mějme tabulková data načtená třeba z CSV nebo Google Tabulku. Víte o
>> elegantním nástroji (modulu) pro Python implementujícím jednoduchý
>> dotazovací jazyk?
>>
>> Jako "dej mi všechny řádky, které mají ve sloupci B hodnotu V (příp.
>> regexp), ve sloupci C nemají hodnoty V1 ani V2" atd.
>>
>> Jde mi o etablovanou věc. Ne něco spíchnutého pro vlastní potřebu a hrdě
>> zveřejněného, aby si autor otestoval psaní setup.py. :-)
>>
>> Díky,
>>
>> V.
>>
>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] table querying

2018-03-05 Tema obsahu Petr Messner
No, je na to jeden takový super jazyk - Python :)

I když teda existuje jazyk, ve kterém se nějaké adhoc datové transformační
pipelines dělají ještě lépe - Javascript. Škoda, že Python list nemá metodu
map, musí se to dělat minimálně přes list comprehensions, což je sice
obecnější, ale o něco pomaleji se to píše.

Pro old-schoolery potom grep, sed a awk.


Dne 5. března 2018 14:31 Vláďa Macek  napsal(a):

> Zdar,
>
> mějme tabulková data načtená třeba z CSV nebo Google Tabulku. Víte o
> elegantním nástroji (modulu) pro Python implementujícím jednoduchý
> dotazovací jazyk?
>
> Jako "dej mi všechny řádky, které mají ve sloupci B hodnotu V (příp.
> regexp), ve sloupci C nemají hodnoty V1 ani V2" atd.
>
> Jde mi o etablovanou věc. Ne něco spíchnutého pro vlastní potřebu a hrdě
> zveřejněného, aby si autor otestoval psaní setup.py. :-)
>
> Díky,
>
> V.
>
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Kus paměti na numpy array

2018-01-11 Tema obsahu Petr Messner
Ahoj, co numpy.frombuffer?

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.frombuffer.html

Nebo:

https://stackoverflow.com/questions/23930671/how-to-create-n-dim-numpy-array-from-a-pointer

Snad neradím blbosti, s numpy jsem takhle ještě nepracoval.

PM


Dne středa 10. ledna 2018 17:08:23 UTC+1 Petr Blahos napsal(a):
> Ahoj, 
> 
> 
> přes ctypes volám něco, co volá zpět můj callback. V tom callbacku je jeden
> z parametrů pointer na unsigned char, a délka pole. No a já bych potřeboval
> buď toto pole dostat do numpy array. Nevíte, jak na to?
> 
> 
> Volání vypadá takto:
> 
> 
> 
> def img_cb(buffer, buffer_size, cnt):
>     # tady ten buffer potřebuju dostat do numpy array
> 
> 
> 
> 
> 
> cb_tp = ctypes.WINFUNCTYPE(ctypes.c_long, ctypes.POINTER(ctypes.c_ubyte), 
> ctypes.c_long, ctypes.c_void_p)
> cb_f = cb_tp(img_cb)
> 
> 
> 
> volání_funkce_která_nastaví_callback(0, 1, cb_f, 1)
> volání_funkce_která_odstartuje_volání_callbacku(0, None, False, True)
> 
> 
> 
> 
> Ta data budu muset kopírovat. Dokážu udělat: 
> 
> 
> a = numpy.array(buffer[0:buffer_size], dtype=numpy.uint8)
> 
> 
> 
> ale to je strašně pomalé.
> 
> 
> Předem díky.
> --
> Petr

___
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-28 Tema obsahu Petr Messner
Ad MySQL vs PostgreSQL - záleží na use case. Pro 99 % programátorů možná
bude PostgreSQL lepší po všech stránkách, ale třeba v Seznam.cz nebo
Facebooku to mohou oprávněně vidět jinak.

https://eng.uber.com/mysql-migration/
https://ayende.com/blog/175137/re-why-uber-engineering-switched-from-postgres-to-mysql
https://code.facebook.com/posts/190251048047090/myrocks-a-space-and-write-optimized-mysql-database/

Můj osobní komentář:

- PostgreSQL staví na nějakých předpokladech, jak by to ideálně mělo
fungovat, např. že kešování nebo kompresi má řešit operační systém a ne
databáze. Bohužel zas tak růžové to ale v praxi není :)
- rozdílný přístup k replikaci
- MySQL je zdá se taková víc/snadněji "hackable" - opět něco, co 99 % lidí
nevyužije, ale někdo ano
- i ten hloupý MyISAM, kterému byste se měli vyhnout, pokud má MySQL
fungovat jako "databáze", je někdy super, pokud místo "databáze"
potřebujete spíš "storage"
- a i kdyby obě databáze měly všechny metriky stejné, tak zahodit roky
zkušeností s produkčním provozem jedné databáze a jen tak ze srandy
přehodit terabajty/petabajty dat do jiné databáze asi taky není úplně ono

Nicméně co z toho je relevantní pro začátečníka :)

Ještě pár poznámek k ostatním příspěvkům:

- jestli MySQL není dost ACID, tak asi máte špatně nastavený isolation
level - "serializable" není výchozím nastavením. Což ostatně platí i pro
PostgreSQL.
- někdo tu zmiňoval, že je sqlite díky možnosti běžet z RAM vhodná na
testy; no a je snad problém si pro testy spustit v ramdisku (tmpfs) i tu
PostgreSQL/MySQL? :)
- někoho, kdo nezná základy SQL (tak, že typické use cases není schopen
vyjádřit v SQL), bych asi ani nepovažoval za programátora, leda hodně hodně
juniorního (nebo nějakého "Django ninju"). I na těch horších školách se
aspoň nějaké SQL učí.
- na druhou stranu SQL není zas tak úplně triviální, když se to má člověk
naučit rozumně, tak na VŠ je to celý předmět minimálně na jeden semestr.
- kéž by všechny softwarové projekty byly alespoň tak dobře otestované jako
SQLite :) https://www.sqlite.org/testing.html

A pár poznámek mimo :) Aneb není vše jen o MySQL a PostgreSQL.

- třeba SQL databáze ani není potřeba :) Alternativ je spousta, od Redisu
přes MongoDB a ElasticSearch až po nějaké Cassandry a HBase, speciality
typu Druid.io a kdoví co ještě. Některé z nich je možné číst i přes SQL
dotazy. Dneska už i AWS S3 má pseudo-SQL rozhraní.
- pak jsou cloudové databáze (včetně "serverless"), některé z nich mohou
fungovat i jako drop-in náhrada PostgreSQL nebo MySQL.
- my třeba v práci používáme primárně MongoDB a SQL nám nějak nechybí :) Na
jednu stranu člověk musí trochu vědět, co dělá (částečné povědomí o
distribuovaných systémech dost pomůže), na druhou stranu právě všechny
tyhle blbosti typu MySQL vs. PostgreSQL a SQL vs. ORM nemusím řešit :) A k
tomu mám zadarmo mnohem lepší API a provozní i výkonostní charakteristiky.
A kdyby mi nějak extra scházelo SQL pro nějakou analytiku a reportování,
tak možnosti, jak to řešit, jsou. MongoDB je už třeba docela klasika v
node.js světě.

PM


Dne 28. prosince 2017 8:51 starenka .  napsal(a):

> >> Je to velmi osvědčená a používaná databáze, v řadě věcí navíc ještě
> stále překonává třeba ten Postres.
>
> Muzu se zeptat v cem?
> -
> 'aknerats'[::-1]
>
> On Dec 28, 2017 00:22, "Daniel Milde"  wrote:
>
> Já bych ještě dodal, že ani Mysql/MariaDB/PerconaDB není žádná hračka :)
>
> Je to velmi osvědčená a používaná databáze, v řadě věcí navíc ještě
> stále překonává třeba ten Postres.
>
> Jinak k dotazu tazatele: z konektorů bych doporučil PyMysql a na
> samotnou tvorbu dotazů buď:
>
> 1) SQLAlchemy pokud budeš dělat v aplikaci i zápisy a většinu času budeš
> potřebovat data celých entit/modelů.
>
> nebo
>
> 2) SqlPuzzle pokud se budeš jen dotazovat a budeš potřebovat hodně
> specifické dotazy, které je vhodné psát v něčem víc blízkém SQL.
>
> Dan
>
>
> Dne 27.12.2017 v 13:50 Matěj Cepl napsal(a):
> > On 2017-12-27, 11:33 GMT, zu1234 wrote:
> >> Jsem stará konzerva a myslím si že začátečník by měl začínat jednoduše.
> >> Vyhnul bych se SQLAlchemy a ORM.
> >> Když jsem se snažil si zjednodušit život, většinou jsem si zavařil.
> > Souhlas, pro začátečníky bych doporučil
> > https://docs.python.org/2.7/library/sqlite3.html a pak k tomu
> > nějaký opravdový kurs SQL (když dáte do svého oblíbeného
> > vyhledávače SQL vypadne jich několik). DBAPI popsaných zde pro
> > SQLite podporuje většina databázových konektorů pro Python a pro
> > začátek to stačí. Pak jak se bude učit hlouběji, bude potřebovat
> > nějakou opravdovou databázi (tj. ne hračky jako SQLite nebo
> > MySQL, já mám oblíbený PostgreSQL), ale to může pro úplný
> > začátek počkat.
> >
> > SQLAlchemy nebo nějaké ORM jsou dobré, ale bez znalosti SQL se
> > podle mého nikdo neobejde (uznávám, že v oblasti SQL jsem spíše
> > laik).
> >
> > Matěj
>
>
___
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-25 Tema obsahu Petr Messner
Ahoj,

pymysql a mysqldb jsou db drivery - klientské knihovny pro přístup do
databáze, umožňují provádět SQL dotazy, transakce a tak.

ORM je knihovna, která uvnitř typicky používá ten db driver (v SQLAlchemy
je součástí connection stringu informace, který driver se má použít) a
umožňuje pracovat s databází "objektovým způsobem". Konkrétně SQLAlchemy je
"filosoficky" založená na design patternech Data Mapper a Unit of Work,
jiná ORM (myslím že např. to Djangové) mohou preferovat design pattern
Active Record. To píšu proto, kdybys chtěl dál zkoumat, proč a jak to
funguje a jaké jsou alternativy a výhody/nevýhody jednotlivých přístupů.

ORM může a nemusí být vhodné pro menší a větší projekty. Samozřejmě můžeš
kombinovat ORM a SQL přístup. Některé dotazy je jednodušší zapsat přímo
přes SQL, jindy je zase joinů anebo sloupců tolik, že ORM dost šetří práci.
Nebo pokud chceš používat stored procedures a další funkcionalitu SQL
databáze, tak asi budeš chtít přímo SQL.

Co se týče volby mezi mysqldb a pymysql, tak dnes bych asi volil pymysql.

Víc SQL dotazů samozřejmě můžeš dělat přes jedno spojení i přes jeden
kurzor. Víc kurzorů potřebuješ, když chceš dělat SQL dotazy zatímco teprve
zpracováváš výsledky jiného SQL dotazu. V tvém příkladu si ale ty výsledky
nejdřív načteš všechny z kurzoru do paměti, takže je OK znovu použít ten
kurzor.

Celá tahle abstrakce s kurzory by měla být v Pythonu pro všechny SQL
databáze stejná, je to definované v PEP 249:
https://www.python.org/dev/peps/pep-0249/

These objects represent a database cursor, which is used to manage the
> context of a fetch operation. Cursors created from the same connection are
> not isolated, i.e., any changes done to the database by a cursor are
> immediately visible by the other cursors.


Jinak bych tě ještě upozornil, ať se vyvaruješ *SQL injection*. Správný
přístup je použít v SQL zástupné symboly.a konkrétní data dodat "bokem":

self.cursor.execute('INSERT INTO values VALUES ('', NOW(), %s)', (row[0], ))

Kdyžtak tady je ukázka "jednoduché" webové aplikace používající sqlite
(napřímo), vzhledem k podobnosti všech driverů (díky PEP 249) by to skoro
takhle vypadalo i s MySQL:
https://github.com/messa/db-workshop-web-app/blob/dokonceno/anketa.py

A tady je varianta s SQLAlchemy:
https://github.com/messa/db-workshop-web-app/blob/sqlalchemy/anketa.py

Další čtení: :)

- https://blog.sqreen.io/preventing-sql-injections-in-python/
- https://www.fullstackpython.com/databases.html

PM

Dne 25. prosince 2017 11:41 Lubomir Vogl  napsal(a):

> Ahoj,
>
> potreboval bych poradit s SQL. Hraju si s MariaDB a zajimalo by me :
>
> - jaka je nejlepsi knihovna pro praci s SQL ? Zatim jsem nasel (PyMySQL,
> SQLAlchemy, MySqlDb) Chtel bych se naucit neco co bude mozne pouzit i na
> slozitejsi projekty
> - je ORM vhodne i na jednodussi projekty ?
> - pokud budu v SQL chtit pouzivat vice SQL dotazu, je to mozne udelat pres
> jedno spojeni (jeden cursor) nebo je nutne mit vice otevrenych spojeni ?
> Viz nasledujici priklad - jedno otevrene spojeni
>
>
>  sql = "SELECT * FROM portal WHERE typ_id = " + str(typ)
>  self.cursor.execute(sql)
>  data = self.cursor.fetchall()
>  c = self.cursor.rowcount
>  for row in data:
>  sql1 = "INSERT INTO values VALUES ('',NOW(),0," + str(row[0]) + ")"
>  try:
>  self.cursor.execute(sql1)
>  except:
>  self.db.rollback()
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Překlady programů

2017-12-05 Tema obsahu Petr Messner
V dokumentaci je napsano:

Comment lines starting with #: contain references to the program’s source
> code.


Je to komentar, ktery xgettext vytvori automaticky, abys vedel, kde ve
zdrojovem kodu to konkretne je. Nic vic, nic min. Nebo ne? :)

PM

Dne 5. prosince 2017 13:35 Ondrej Tuma  napsal(a):

> 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 :)
> > >
> > > - https://docs.djangoproject.com/en/2.0/topics/i18n/
> > > - https://docs.djangoproject.com/en/2.0/topics/i18n/translation/
> > > - http://babel.pocoo.org/en/latest/
> > >
> > > Pokud používáš nějaký framework (webový, qt, gtk, ...), najdi si
> > > dokumentaci o internacionalizaci (i18n) k němu :)
> > >
> > > Obecně chceš soubor a ne databázi, protože soubor budeš mít
> > > normálně v gitu, kolegové posílat pull requesty na to apod. S
> > > formátem gettextu umí 

Re: [python] Překlady programů

2017-11-22 Tema obsahu Petr Messner
Ahoj,

gettext je standard. Zkus se podívat na tyto odkazy - pokud neděláš web,
tak si ty webové věci od toho odmysli :)

- https://docs.djangoproject.com/en/2.0/topics/i18n/
- https://docs.djangoproject.com/en/2.0/topics/i18n/translation/
- http://babel.pocoo.org/en/latest/

Pokud používáš nějaký framework (webový, qt, gtk, ...), najdi si
dokumentaci o internacionalizaci (i18n) k němu :)

Obecně chceš soubor a ne databázi, protože soubor budeš mít normálně v
gitu, kolegové posílat pull requesty na to apod. S formátem gettextu umí
pracovat hromada nástrojů, včetně statické analýzy kódu pro vyhledávání
nepřeložených řetězců, výpočet translation coverage...

PM

Dne 23. listopadu 2017 0:32 Ctibor.Plasek 
napsal(a):

> Ahoj.
> Přemýšlím nad následujícím problémem - jak jednoduše vytvořit vícejazyčnou
> verzi programu.
> Vytvořit databázi, nebo textové soubory? Jakým nejlepším způsobem říct
> programu, že pokud je zapnutá volba "česky"¨
> tak že první v menu bude "Soubor", když anglicky tak že to bude "File" atd.
> Určitě jste už tyto problémy řešili, tak jsem se chtěl zeptat, co a jakým
> způsobem je nejvýhodnější (i pro event. další rozšíření překladů)
>
> Díky za rady
>
> ___
> 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 ala PC-FAND

2017-11-14 Tema obsahu Petr Messner
>
> Electron je ta ohavnost v cem je udelanej slack klient? Ta vec co zere
> bezna giga ram?


Je to tak :) Nebo třeba Atom, VS Code...

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

Visit: http://www.py.cz


Re: [python] GUI ala PC-FAND

2017-11-14 Tema obsahu Petr Messner
>
> Myslím že mezi excelem a hotovou databázovou aplikací pro konkrétním
> použitím je díra na trhu (nebo díra v mých vědomostech :). Ale ten trh je
> malý. Také jsem o něčem takovém uvažoval a asi docela podobným způsobem.
>
>
Možná tuto díru dnes zaplňuje FileMaker? https://www.filemaker.com/

Třeba by stačilo udělat nějakou Django aplikaci... Nebo nějaké web API
(klidně REST Django) a SPA webovku (v Reactu, Vue, Angularu a tak). Jestli
to fakt musí běžet i na desktopu, tak lze to zabalit do Electronu.

PM


> Dne 14.11.2017 v 10:56 jneko...@centrum.cz napsal(a):
>
> Zdravím.
>> Jsem rád, že se tu objevil také nějaký FANDista. Já ho už léta využívám k
>> tomu co potřebuje evidovat a rychle spočítat. Živí mě něco jiného.
>> Něco jsem už v životě ve FANDU naprogramoval, ale programátorem bych se
>> rozhodně netroufl nazvat.
>> V pythonu jsem vytvořil jen jednu aplikaci, která mi vezme vytvořenou
>> sestavu ve FANDu (vyúčtování stočného) a odešle na určenou emailovou adresu.
>> Jen klepnu na ikonku. V příkazovém řádku mi script vezme soubor, převede
>> do správného formátu, odešle a zapíše do protokolu.
>>
>> Můj největší problém - neumím anglicky a ve svých 58 letech se už asi
>> nenaučím.
>>
>> Já jsem si problém rozdělil na několik oblastí a zkoumal jsem proč už mi
>> PC Fand nestačí.
>> PC FAND  je DOS aplikace s velmi dobrým zpracování relační databáze.
>> Ideálně spojuje datový editor, textový editor, tvorbu, údržbu a
>> zpracování datových tabulek, procedurální programování a tvorbu tiskových
>> výstupů.
>> Při pořízení číselných dat vám stačí jen pravá ruka - numerická
>> klávesnice a přilehlé kurzorové klávesy. Žádné použití Tab. Levou rukou si
>> můžete ukazovat v textu
>> a pořízení dat fakt frčí.
>> Uživatel vůbec nepotřebuje znát SQL syntaxi a dotazy.
>> Rychlost a snadnost, jak vytvořit databázi, jak ji naplnit a jak
>> modifikovat a udržovat považuji za bezkonkurenční.
>>
>> Proč tedy hledám něco jiného?
>> 1. Nelze dnes přímo spustit ani pod Windows ani pod Linuxem. Freedos jsem
>> nezkoušel a myslím. že tudy cesta nevede.
>> Je ale úspěšně provozován pod DOS Boxem např. www.ucto2000.cz (výrazně
>> pomalejší než pod čistým DOSEM, složité nastavování DOSBOXu).
>> RYCHLOST
>>
>> 2. Datový editor - je omezen na 80 sloupců (pokud nepoužiju rámečky) a to
>> je mi na obrazovce často málo.
>> ROZSAH DAT NA OBRAZOVCE.
>>
>> 3. Data jsou ukládána v souborech v 8 bitovém formátu v omezeném kódování
>> ASCCI, Kamenický a asi nejpoužívanejší LATIN.
>>   Pro převod do WIN je nutno konvertovat (příkaz je přímo v programovém
>> prostředí, ale už je to mezikrok).
>> KÓDOVÁNÍ
>>
>> 4. I když umožňuje zpracování v síti nepracuje v režimu client server.
>>
>> 5. Součástí aplikace je ohromně mocný generátor sestav, které ale nejdou
>> přímo vytisknout  ničím jiným než FANDem. Z DOSBOXu nejde přímo tisknout.
>>  Firma Tichý a spol. v účtu mají vlastní program pro převod těchto
>> sestav do PDF.  (Neumí provést podtržené písmo - pro FANDISTY Ctrl S).
>>
>> Tak k čemu jsem došel?
>> Hledal jsem všechno možné a python mi přišel jako nejbližší, i když proti
>> *.exe programům je přeci jen pomalejší.
>> Má přístup k celé řadě databází  MySQL, PostgreSQL, SQLite, Firebird.
>>
>> První dvě mi přijdou zbytečně robustní, Firebird se mi jevil
>> nejpodobnější.
>> SQlite skutečně zabere minimum místa na disku, ale rychlost mě také až
>> tak nenadchla.
>>
>> Grafická prostředí
>> TK je sice součástí Pythonu, ale jednoduché není. Zkoumal jsme Qt,
>> Gnome,GTK,, a wxWidget.
>> Ten poslední se mi nakonec zdál zajímavý, ale neumím ho.
>>
>>
>> Co mi ale v poslední době přišlo zajímavé je projekt Django.
>> Využívá  internetové prohlížeče a poměrně jednoduše lze deklarovat datový
>> model a také ho udržovat a upravovat.
>> Velmi se mi líbil seriál https://tutorial.djangogirls.org/cs pro verzi
>> 1.8
>>  https://docs.djangoproject.co
>> m/en/1.11/intro/tutorial01/
>>
>> Na lokálu pracuje s SQlite ale lze nastavit i na jinou databázi.
>> Pro tvorbu tiskových výstupů by zřejmě bylo možné dobře použít ReportLab.
>> Pro mě je ale zatím moc složitý.
>> Spíše jsem hledal, kde je prakticky použit.
>>
>> Jiří Nekolný jneko...@centrum.cz
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> __
>>
>>> Od: Ondrej Tuma 
>>> Komu: python@py.cz
>>> Datum: 13.11.2017 21:21
>>> Předmět: [python] GUI ala PC-FAND
>>>
>>> Zdravím v konferenci,
>>>
>>> rád bych si napsal jednoduchý a specifický program na psaní faktur,
>>> jenž nahradí excel. Důvody pro "znovu-vynalézání kola", nechme prosím
>>> stranou, berte to jako příležitost rozšířit znalosti.
>>>
>>> Kdysi jsem programoval v PC-Fandu, což je takový český jazyk
>>> Pascalovského typu, s hezkým editorem databází, formulářů a tiskových
>>> výstupů (pamětníci, nechť zamáčknou slzu :-))
>>>
>>> No a v "podobném" duchu bych rád postavil i tuto moji mini-aplikaci.
>>> Původní požadavek byl, aby byla aplikace pokud možno mu

Re: [python] Python pro nezačátečníka fyzikálního

2017-11-09 Tema obsahu Petr Messner
Ahoj!

Tvůj popis mě docela zaujal a rád bych viděl, co jsou ty prohřešky a
berličky :)

Potenciál jazyka i ekosystému bohužel používá v malé míře.


Tohle se podle mě do hlavy dostane spíš kontaktem s dalšími lidmi než
samostudiem čtením něčeho. Tak snad aspoň ví o Jupyteru :)

Trochu s tím zkušenost mám, hlavně z aktivit okolo pyladies.cz. Nejlépe mi
fungovalo sejít se a posunout dotyčného/dotyčnou blíže k řešení aktuálního
problému, který zrovna řeší. Předpokladem tedy je, že existuje nějaký
problém, který je dotyčný student motivovaný řešit (např. dodělat django
web tutorial, pomocnou aplikaci do práce apod.) a že jsem schopen ho
posunout. Často stačí jen poslat správný odkaz (holt i u otázky na
StackOverflow je potřeba vybrat správnou odpověď, úplný začátečník se
ztratí i tam) a vysvětlit nějaké základy - ale hodně stručně, např. na
vysvětlení co je to http by vám měla stačit jedna minuta, jinak jdete moc
do hloubky a nebo to třeba ani sami moc nechápete :) Zrovna u fyzika by
mělo být výhodou, že věci jako čtení a pochopení delšího abstraktního textu
v angličtině nebudou problém.

U takovéto pomoci začátečníkům a lidem co nejsou primárně programátoři (tj.
nebavím se zde o klasickém formálním vzdělávání) se kloním k tomu nedělat
dopředu nějaký dlouhý teoretický výklad - memorování design patternů, solid
principles... - ale nechat člověka něco dělat a jen udělat "boží zásah" ve
správnou chvíli :) Tím myslím, že se něco rozbije, tak přijdu, vysvětlím
proč se to rozbilo a co dělat, aby se to příště nerozbilo znovu. To je
totiž naše (moje, tvoje) skutečná hodnota, že známe souvislosti a koncepty
okolo toho, o kterých ten začátečník ještě ani neví, že existují.

Nějaké prohřešky proti návrhu, stylu... nevím, spíš záleží, o co konkrétně
jde. Možná si zkus představit, že místo v Pythonu budeš programovat v
Javascriptu nebo C#, prostě v něčem o trochu jiném, co úplně neznáš, asi
taky budeš dělat nějaké prohřešky proti návrhu a stylu :) A kolik z nich
bude "kosmetických", kolik z nich takových, že by nebyl dobrý nápad na tom
stavět projekt s roky vývoje, ale jinak ok. Všechny ty design patterny a
principles, vlastně úplně všechno od assembleru přes OOP po nejnovější
letošní reactive framework, jsou jen reakce na to, jak se to dělalo dřív o
trochu hůře. Úplně vědu bych z toho teda nedělal, no tak to ten člověk holt
dělá o trochu hůře, tak, jak se to dělalo už dřív :) Zase pokud je někdo
ten typ softwarového inženýra, co si všude musí nacpat DI kontejner,
pětivrstvou hiearchii výjimek a dvacet entit, tak bych někdy preferoval
možná i ten primitivnější přístup :)

Bylo by fajn, kdyby existovala nějaká online platforma, kde se nějaký
mentoring může dít. Zatím to může být Facebook a nějaká skupina typu
https://www.facebook.com/groups/PyWorkingPraha/ anebo přidružená obtýdenní
setkání https://www.meetup.com/pyladiescz/ Ideálně kdybychom se mohli
setkat i na Pyvě.

Petr M.

Dne 9. listopadu 2017 21:19 Vláďa Macek  napsal(a):

>
> Můj kamarád, fyzik v AV, který se dříve více věnoval počítačům, začal
> samovolně před lety používat Python k modelování chování materiálů.
>
> Teď mi program ukázal. Má už docela velký skript, řadu nevyhnutelných
> prohřešků proti stylu, patternům a dobrému návrhu. Nejedná se o dlouhodobý
> týmový software, jaký je u nás běžný. Za půl roku se vytěží a zahodí (vyjma
> případné nutnosti replikovat výpočet v budoucnu).
>
> Vyřešil potichu spoustu záseků, zkopíroval do kódu řadu polynomů z
> Wolframu, žije s předsudky, které samotáři často slouží jako berličky apod.
> Potenciál jazyka i ekosystému bohužel používá v malé míře.
>
> To je všechno pochopitelné.
>
> Hodně si vážím víceoborových lidí. Nemá to lehký, ofrňujou se nad ním někdy
> jak fyzikové, tak programátoři. Přitom, jak věřím, pokrok pochází z velké
> míry právě od lidí jako je on.
>
> Kdyby navštívil školení pro začátečníky, bude tam ze 3/4 sedět zbytečně. Ve
> snaze mu pomoct do budoucna jsem nejdřív poradil přečíst poctivě Python
> Tutorial, který ho nasměruje ohledně jazyka a taky číst kód dobrých
> vývojářů, aby nasál strukturování, zapouzdření, důležitost dobrých datových
> typů, patterny a anti-patterny, ...
>
> Ale tohle je laciná rada.
>
> Rád bych se zeptal, zda má někdo z vás za sebou podobnou snahu pomoct
> kamarádovi v podobné situaci. Pokud jo, jak jste postupovali?
>
> Díky!
>
> --
> : Vlada Macek  :  http://macek.sandbox.cz  : +420 608 978 164
> : UNIX && Dev || Training : Python, Django : PGP key 97330EBD
>
> ___
> 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] Tip: Slusne me dnes pokousaly timezony

2017-07-26 Tema obsahu Petr Messner
Zajímavé: https://github.com/stub42/pytz/blob/master/tz/europe

# Czech Republic / Czechia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Czech 1945 only - Apr 8 2:00s 1:00 S
Rule Czech 1945 only - Nov 18 2:00s 0 -
Rule Czech 1946 only - May 6 2:00s 1:00 S
Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 -
Rule Czech 1947 only - Apr 20 2:00s 1:00 S
Rule Czech 1948 only - Apr 18 2:00s 1:00 S
Rule Czech 1949 only - Apr 9 2:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Prague 0:57:44 - LMT 1850
0:57:44 - PMT 1891 Oct# Prague Mean Time
1:00 C-Eur CE%sT 1944 Sep 17  2:00s
1:00 Czech CE%sT 1979
1:00 EU CE%sT
# Use Europe/Prague also for Slovakia.

Takže ten default je asi PMT - Prague Mean Time z roku 1891? :)

PM

Dne 26. července 2017 17:32 Daniel Milde  napsal(a):

> Ahoj,
> ještě doplním proč to tak je:
>
> >>> tz = pytz.timezone('Europe/Prague')
>
> pytz neví, jaký offset má použít, protože timezone Europe/Prague může být
> +1 nebo +2 (letní čas).
> Spadne proto do nějakého divného defaultu, který je PMT+0:58:00 STD :)
>
> Teprve když timezonu svážeme s konrétním datumem přes localize, nastaví
> pytz správný offset.
>
> Dan
>
> Dne 26.7.2017 v 09:47 Vláďa Macek napsal(a):
>
> Dejte si bacha.
>
> Pekne me dnes pokousaly timezony a to jsem si myslel, ze se vyznam. :-)
>
> Django 1.11 preslo nejak vic na vyuzivani `pytz`, ktere dodava casove zony
> s vice informacemi a datetime.replace, ktere jsem do te doby nespravne
> pouzival, se mi fakt nevyplatilo...
>
> >>> import datetime
> >>> import pytz
>
> >>> tz = pytz.timezone('Europe/Prague')
> >>> tz
> 
> >>> # Strasidelne. :-) To mam nekde chybu, ne...
> >>> d_praha_naivni = datetime.datetime(2017, 6, 8, 10, 19, 52)
> >>> d_praha_vnuceno_blbe = d_praha_naivni.replace(tzinfo=tz)
>
> >>> d_utc_naivni = datetime.datetime.strptime('2017-06-08T08:19:52+00:00',
> '%Y-%m-%dT%H:%M:%S+00:00')
> >>> d_utc_naivni
> datetime.datetime(2017, 6, 8, 8, 19, 52)
>
> >>> d_utc_vnuceno_blbe = d_utc_naivni.replace(tzinfo=pytz.utc)
> >>> d_utc_vnuceno_blbe
> datetime.datetime(2017, 6, 8, 8, 19, 52, tzinfo=)
>
> >>> d_praha_vnuceno_blbe == d_utc_vnuceno_blbe
> False
> >>> # Pritom stejny cas... lepe:
>
> >>> d_praha = tz.localize(d_praha_naivni)
> >>> d_praha
> datetime.datetime(2017, 6, 8, 10, 19, 52, tzinfo= 'Europe/Prague' CEST+2:00:00 DST>)
>
> >>> d_utc = pytz.utc.localize(d_utc_naivni)
> >>> d_utc
> datetime.datetime(2017, 6, 8, 8, 19, 52, tzinfo=)
>
> >>> d_praha == d_utc
> True
> >>> # Konecne mi to uznal. :-)
>
> >>> d_utc == d_utc_vnuceno_blbe
> True
> >>> # Vnuceni UTC pomoci replace() zjevne vadi min... :->
>
>
>
> ___
> Python mailing listpython@py.czhttp://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] Tip: Slusne me dnes pokousaly timezony

2017-07-26 Tema obsahu Petr Messner
Tak dokumentace je tady: http://pythonhosted.org/pytz/ :)

Jinak co se mi osvědčilo je používat všude UTC a teprve v UI těsně před
zobrazením to převést do uživatelovo zóny (u javascriptových aplikací
nejlépe přímo v prohlížeči).

(Ano, PostgreSQL umí timezony, ale jiné technologie/serializace ne anebo
mezi tím není hladký přechod.)

PM

Dne 26. července 2017 14:52 Jakub Vysoky  napsal(a):

> Taky to tak nekde pouzivam. Pritom bych dal ruku do ohne, ze to bylo
> vycucly z nejaky dokumentace.
>
> Asi to nebyla dokumentace, ale stackoverflow :)
>
> Dik!
>
> On Wed, 26 Jul 2017 at 09:47, Vláďa Macek  wrote:
>
>> Dejte si bacha.
>>
>> Pekne me dnes pokousaly timezony a to jsem si myslel, ze se vyznam. :-)
>>
>> Django 1.11 preslo nejak vic na vyuzivani `pytz`, ktere dodava casove
>> zony s vice informacemi a datetime.replace, ktere jsem do te doby nespravne
>> pouzival, se mi fakt nevyplatilo...
>>
>> >>> import datetime
>> >>> import pytz
>>
>> >>> tz = pytz.timezone('Europe/Prague')
>> >>> tz
>> 
>> >>> # Strasidelne. :-) To mam nekde chybu, ne...
>> >>> d_praha_naivni = datetime.datetime(2017, 6, 8, 10, 19, 52)
>> >>> d_praha_vnuceno_blbe = d_praha_naivni.replace(tzinfo=tz)
>>
>> >>> d_utc_naivni = datetime.datetime.strptime('2017-06-08T08:19:52+00:00',
>> '%Y-%m-%dT%H:%M:%S+00:00')
>> >>> d_utc_naivni
>> datetime.datetime(2017, 6, 8, 8, 19, 52)
>>
>> >>> d_utc_vnuceno_blbe = d_utc_naivni.replace(tzinfo=pytz.utc)
>> >>> d_utc_vnuceno_blbe
>> datetime.datetime(2017, 6, 8, 8, 19, 52, tzinfo=)
>>
>> >>> d_praha_vnuceno_blbe == d_utc_vnuceno_blbe
>> False
>> >>> # Pritom stejny cas... lepe:
>>
>> >>> d_praha = tz.localize(d_praha_naivni)
>> >>> d_praha
>> datetime.datetime(2017, 6, 8, 10, 19, 52, tzinfo=> 'Europe/Prague' CEST+2:00:00 DST>)
>>
>> >>> d_utc = pytz.utc.localize(d_utc_naivni)
>> >>> d_utc
>> datetime.datetime(2017, 6, 8, 8, 19, 52, tzinfo=)
>>
>> >>> d_praha == d_utc
>> True
>> >>> # Konecne mi to uznal. :-)
>>
>> >>> d_utc == d_utc_vnuceno_blbe
>> True
>> >>> # Vnuceni UTC pomoci replace() zjevne vadi min... :->
>>
>>
>> ---
>>
>> Freehosting PIPNI - http://www.pipni.cz/
>>
>> ___
>> 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 <605%20852%20377>
> 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] Používání proměnných

2017-04-03 Tema obsahu Petr Messner
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

Re: [python] Too much freedom?

2017-01-03 Tema obsahu Petr Messner
Dne 2. ledna 2017 18:18 Petr Messner  napsal(a):

> Mě by se Python třeba výrazně zrychlil odstraněním GILu :)
>
>
Samozřejmě jsem chtěl napsat CPython :)

PM
___
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-02 Tema obsahu Petr Messner
Ahoj,

mě to všechno zatím řeší Cython :) Když teda potřebuju rychlost.

Zrychlení o 20% (nebo 25% nebo 50%...) - opravdu by to něčemu prakticky
pomohlo? Jen málokdo funguje v takových rozměrech, aby 20% zrychlení
Pythonu znamenalo, že se ušetří vůbec nějaké množství nákladů na hardware.

Mě by se Python třeba výrazně zrychlil odstraněním GILu :)

Jako já žádné zrychlovací snahy nechci shazovat, pokud to jde, tak sem s
tím :) Jen prostě pokud za odpověď někdo považuje "zrychlit Python", jaká
je vlastně otázka? A není na ní lepší odpověď? :) Třeba změnit databázové
schéma, kešovat, jinak zpracovávat data, snížit počet I/O operací, použít
nějakou hustou knihovnu, co využívá vektorové instrukce CPU/GPU... Nejspíš
existují i jiné možnosti, než dojdete k okamžiku "a teď už by tomu opravdu
pomohla jen kvantová JIT VM".

Ad statická kontrola kódu - můžu začít tím, že si sem a tam budu anotovat,
že funkce vrací string, nebo že to nějaký nástroj dokonce odvodí za mě...
Ale čím vic jdu do hloubky, tím víc si říkám, že bych to teda raději dělal
rovnou v tom C++ :) Ale to je možná tím, že jakmile mám kladivo (C++), tak
prostě všechno najednou vypadá jako hřebík. I v tom Google si raději
vymysleli Go, než aby každého programátora museli zasvěcovat do tajů C++.

Jsem zvědavý na další názory :) Hodně zdraví a málo segfaultů v novém roce!

PM

Dne 2. ledna 2017 17:12 Vláďa Macek  napsal(a):

> Ahoj všem, hezký nový rok.
>
> Občas mě napadne...
> Python je silně dynamický jazyk, tj. umožňuje velmi svobodné operace s
> objekty, metaprogramování atp. Až tolik, že to některým lidem přijde moc a
> vyvíjejí aktitivy, jak ho trochu spoutat a něco za to získat.
>
> 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%?
>   * se dal kompilovat do efektivního nativního kódu?
>   * umožňoval výrazně lepší podporu automatické statické kontroly kódu?
>   * ...
>
> Podotýkám, že to jsou podněty k zamyšlení, nikoli k flamewar. :-)
>
> Pokud máte načteno a ozkoušeno něco z toho, co se tématu týká, uvítám i,
> pokud se o to podělíte. Nikdy nezaškodí si rozšířit obzory.
>
> Vláďa
>
>
> ___
> 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] Rekurzivní generátor v Pythonu 3?

2016-08-30 Tema obsahu Petr Messner
To je veselé, když někdo dělá benchmark profilerem.

$ cat test_plus.py
out = ''
for i in range(1000):
out += 'Nebudu komentovat rychlost algoritmů bez měření'
$ cat test_append.py
out = []
for i in range(1000):
out.append('Nebudu komentovat rychlost algoritmů bez měření')
outstr = ''.join(out)
$ time python3 test_plus.py

real 0m2.835s
user 0m2.536s
sys 0m0.288s
$ time python3 test_append.py

real 0m1.848s
user 0m1.588s
sys 0m0.256s



Dne 30. srpna 2016 11:39 Matěj Cepl  napsal(a):

> On 2016-08-28, 10:54 GMT, Petr Messner wrote:
> > Na tohle se vykašli. Jakmile dokument nemá stromovou
> > strukturu, tak je vše tisíckrát složitější. Dikybohu toto XML
> > neumí.
>
> Tohle je rada s odpuštěním na h... Ten vstupní datový formát mám
> daný, s tím nemůžu nic dělat.
>
> > 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).
>
> To je veselé jak tyhle pověry drží. Tohle bylo opraveno
> v pythonu 2.5 (pokud se nemýlím).
>
> ~$ cat test_plus.py
> out = ''
> for i in range(1000):
> out += 'Nebudu komentovat rychlost algoritmů bez měření'
> ~$ python3 -mcProfile test_plus.py
>  3 function calls in 1.970 seconds
>
>Ordered by: standard name
>
>ncalls  tottime  percall  cumtime  percall filename:lineno(function)
> 11.9701.9701.9701.970 test_plus.py:1()
> 10.0000.0001.9701.970 {built-in method exec}
> 10.0000.0000.0000.000 {method 'disable' of
> '_lsprof.Profiler' objects}
>
>
> ~$ cat test_append.py
> out = []
> for i in range(1000):
> out.append('Nebudu komentovat rychlost algoritmů bez měření')
> outstr = ''.join(out)
> ~$ python3 -mcProfile test_append.py
>  1004 function calls in 3.331 seconds
>
>Ordered by: standard name
>
>ncalls  tottime  percall  cumtime  percall filename:lineno(function)
> 11.8451.8453.3313.331
> test_append.py:1()
> 10.0000.0003.3313.331 {built-in method exec}
>  10000.5280.0000.5280.000 {method 'append' of
> 'list' objects}
> 10.0000.0000.0000.000 {method 'disable' of
> '_lsprof.Profiler' objects}
> 10.9590.9590.9590.959 {method 'join' of 'str'
> objects}
>
> ~$
>
> 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
>
> You either die a hero or you live long enough to see yourself become the
> villain.
>   -- Harvey Dent in The Dark Knight
> ___
> 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 Petr Messner
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.

Petr Messner

28. 8. 2016 v 17:04, 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
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Rekurzivní generátor v Pythonu 3?

2016-08-28 Tema obsahu Petr Messner

> 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

Re: [python] Rekurzivní generátor v Pythonu 3?

2016-08-28 Tema obsahu Petr Messner
> 
> V mém případě může část dokumentu vypadat třeba takto:
> 
>text text
>
>textB textB  textC textC  textD textD 


Na tohle se vykašli. Jakmile dokument nemá stromovou strukturu, tak je vše 
tisíckrát složitější. Dikybohu toto XML neumí. 

Co je špatného na tom příkladě se sID/eID? Jestli je to v tom, že to neoznačuje 
i část obsahu/verše, co takhle tohle?

a b  c de f g h

Na pochopení toho kódu bych si musel sednout někam v klidu, ale zatím jen 
taková drobnost - 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).

Petr Messner

27. 8. 2016 v 23:09, Matěj Cepl :

> Dobrý den,
> 
> zkouším napsat v Pythonu 3.4+ nástroj pracující s milestonovanými XML soubory 
> (zdrojové texty překladu Bible).  Podrobně jsem to popsal v blogpostu 
> https://matej.ceplovi.cz/blog/parsing-milestoned-xml-in-python.html, zde 
> jenom velice stručně. Milestones (milníky?) jsou metoda jak obejít 
> neschopnost XML pracovat s několika překrývajícími se hierarchiemi v jednom 
> souboru. Tak třeba právě v biblických textech (TEI se potýká s podobnými 
> problémy) je základní struktura kniha-kapitola-verš, ale přes to jsou další 
> elementy které se překrývají. Několik veršů (nebo jejich částí) jsou sdruženy 
> do logických oddílů (ale některé začínají v půli verše a často přesahují 
> hranice kapitol), nebo třeba zejména anglické biblické překlady mají v oblibě 
> značit výroky Pána Ježíše zvlášť (což pochopitelně často začíná a končí v 
> půli verše).
> 
> Jedna z metod (používaná husta právě v biblických textech, TEI a podobných 
> složitě strukturovaných dokumentech) jsou právě milníky. Takže místo aby byl 
> text značen nějak takto:
> 
> 
> 
> text
> ...
> 
> ...
> 
> 
> použijí se na hranici knihy, kapitoly i verše milníky takto (buď se zvláštním 
> označením konce veršů nebo taky ne):
> 
> 
> 
> text of verse 1.1
>  
> 
> 
> V mém případě může část dokumentu vypadat třeba takto:
> 
>text text
>
>textB textB  textC textC  textD textD 
> 
> A chtěl bych aby moje knihovna naparsovala toto XML a vyprodukovala takovýto 
> seznam:
> 
>[(1, 1, "text text", ['text text']),
> (1, 2, "textB textB textC textC",
>  ['', 'textB textB', '', 'textC textC']),
> (1, 3, "textD textD", ['', 'textD textD', ''])]
> 
> (první dvě čísla jsou číslo kapitoly a verše, poslední položka tuplu je 
> seznam kousků XML v podobě přijatelné pro ElementTree.fromstringlist). Takže 
> představoval bych si generátor, který by byl schopen takovéto API:
> 
>if __name__ == '__main__':
>xml_file = ET.parse('tests/data/Mat-old.xml')
>parser = ET.XMLParser(target=ET.TreeBuilder())
> 
>with open('test.txt', 'w', newline='\r\n') as out_txt, \
>open('test.xml', 'w', newline='\r\n') as out_xml:
>for ch, v, verse_txt, verse_xml in recursive_parse(xml_file):
>print(verse_txt, file=out_txt)
># or directly parser.feed(verse_xml)
># if verse_xml is not a list
>parser.feed(''.join(verse_xml))
> 
>print(ET.tostring(parser.close(), encoding='unicode'),
>  file=out_xml)
> 
> Po různých peripetiích (popsaných v tom zmiňovaném blogpostu) jsem v 
> současném okamžiku u tohoto (zatím bez shromažďování XML kousků):
> 
>def __iter__(self) -> Tuple[CollectedInfo, str]:
>"""
>iterate through the first level elements
>"""
>cur_chapter = 0
>cur_verse = 0
>collected_txt = ''
># collected XML is NOT directly convertable into Element objects,
># it should be treated more like a list of SAX-like events.
>#
># xml.etree.ElementTree.fromstringlist(sequence, parser=None)
># Parses an XML document from a sequence of string fragments.
># sequence is a list or other sequence containing XML data fragments.
># parser is an optional parser instance. If not given, the standard
># XMLParser parser is used. Returns an Element instance.
>#
># sequence = ["", "text"]
># element = ET.fromstringlist(sequence)
># self.assertEqual(ET.tostring(element),
># b'text')
> 
>for 

Re: [python] Vice balicku v jednom setup.py

2016-08-25 Tema obsahu Petr Messner
Co ty konstanty vyčlenit do samostatného balíčku?

PM

Dne 25. srpna 2016 9:53 Petr Blahos  napsal(a):

> Ahoj,
>
> mám takovou situaci: Aplikační server s nějakým API, a pro funkci
> toho API potřebuju poskytnout klientům nějaké konstanty. Takže
> myšlenka je ta, že budu mít 2 balíčky, něcolib - knihovna a
> něcoapp - aplikace. Oba budou žít v jednom source tree, jako třeba
>
> něco/
> něco/setup.py
> něco/něcolib/__init__.py
> něco/něcoapp/__init__.py
>
> a na klientovi se bude instalovat jenom něcolib.
>
> V jednom setup.py bude 2x volání setup, jednou pro něcolib, jednou pro
> něcoapp, takže
>   setup.py akce
> udělá tu akci pro oba balíčky.
>
> Zajímalo by mě, jestli je na tomto přístupu podle vás něco špatně,
> pokud ano tak co.
>
> Díky,
> 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] PyFormat 0.1.0 released

2016-08-23 Tema obsahu Petr Messner
Python moduly jako distribuční balíčky jsou dobré akorát pro ostatní
distribuční aplikace.

Když píšu/nasazuju svoji aplikaci, tak to dnes asi každý řeší přes
venv/virtualenv a tam mu stejně ty distribuční Python moduly ani nelezou.

Prostě - když spustím apt-get install dropbox, tak chci, aby používal
závislosti z dalších .deb balíčků. Když ale programuju něco svého, tak přes
venv a závislosti z pypi, už jen proto, aby ostatní v týmu nemuseli
používat stejný OS.

PM

Dne 23. srpna 2016 11:59 Pavel Schön  napsal(a):

> Ahoj,
>
> > PS: Vždy mě zamrzí, když narazím na nějakou knihovnu, která
> > není v pypi a kvůli ní nejde můj projekt z pypi kompletně nainstalovat
>
> Já jsem asi pravý opak, vždycky me vytočí, když nějaký balík není v
> distribuci a musím ho instalovat přes pip (nebo ještě hůře cpan/npm/gem).
> Ale na druhou stranu chápu, že doba pokročila a každý moderní jazyk chce
> mít svůj package manager a proto ten setup.py vytvořím.
> ___
> 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-23 Tema obsahu Petr Messner
Pokud jde o header-only knihovnu (v boostu jich pár je), tak se ještě nabízí 
možnost distribuovat ji spolu s Python modulem. 

Někdy se takhle řeší celé knihovny, ale kompilovat boost bych takhle nechtěl :)

Petr Messner

23. 8. 2016 v 11:09, Ondrej Tuma :

> V Tue, 23 Aug 2016 02:01:49 -0700 (PDT)
> Pavel Schön  napsáno:
> 
>> Jak pip vyřeší závislost na g++, boost apod.? Nebo by pip měl
>> distribuovat již binárku?
> 
> Závislost vysloveně nevyřeší, binárku distribuovat přes pip jde.
> Pokud jde o C/C++ knihovny, tak s tím se tak nějak počítá, u python
> knihoven už je to ale škoda.
> 
> A je celkem obvyklé, že kompilované pythoní knihovny (zejména ty
> oblíbené) v distribucích už jsou, a setup.py/pip je detekuje, takže
> závislost splněná pak je. I když ano, to je zrovna příklad PyFormatu :-D
> 
> -- 
> Ondřej Tůma 
> www: http://ipv6.mcbig.cz   jabber: mc...@jabber.cz   twitter: mcbig_cz
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] PyFormat 0.1.0 released

2016-08-22 Tema obsahu Petr Messner
Je super vidět boost::python v praxi.

Jen instalace by možná byla lepší pomocí setup.py a trochu obecnější, než
Debian balíček. Byly s tím setup.py nějaké problémy, nebo je to v todo
listu, nebo se to zatím nezkoušelo? :)

>>> fmt1, fmt2 = U('first'), U('second')
> >>> fmt1.swap(fmt2)
>

swap operátor v Pythonu? Interjazyková prasárna :)

Mimochodem, když už jsme u toho formátování, pro někoho, kdo to třeba ještě
neví, tak aby se mohl těšit - v Pythonu 3.6 je možné formátovat ještě
jednodušeji:

a, b, c = 1, 2, 3
print(f"{a} {b} {c]") # vypíše "1 2 3"

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

Visit: http://www.py.cz

Re: [python] Nej*ne*oblíbenější modul

2016-08-17 Tema obsahu Petr Messner
Dne 17. srpna 2016 13:14 Ken Mijime  napsal:

> Obávam sa že je veľa seznamáckych technológií, ktoré by sa mali dať na
> diskety a zakopať v nevadskej púšti neďaleko hier E.T.
>
>
Přitom zatím teprve čekáme, čím lidstvo osvítíš Ty :)

V Seznamu se poslední dobou dělají technicky hodně zajímavé věci. Většina z
nich se ale schovává za jedním vyhledávacím inputboxem nebo reklamním
pruhem. Jak už to ale na světě chodí, to, jak vypadají služby zvenčí,
zaleží víc na obchodních a marketingových rozhodnutích než na vývojářských,
takže bych do té pouště vezl spíš jiné části firmy :) Nicméně nějakou tu
miliardu ročně to Ivovi asi hodí, tak co...

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

Visit: http://www.py.cz

Re: [python] Nej*ne*oblíbenější modul

2016-08-17 Tema obsahu Petr Messner
Ok :)

Věci, co mi na modulech a knihovnách vadí:

- žádná nebo divná dokumentace

- víc způsobů, jak dělat jednu věc; typicky high- a low- level api. Pokud stačí 
používat jen jedno (ideálně to high-level), tak ok, ale když se musí kombinovat 
oboje...

- globální stav/proměnné, spoléhání se na věci (typicky konfigurace), které 
nemusí platit

- cizorodé nebo archaické koncepty v API; počínaje nezvyklou terminologií a 
velikostí písmen, přes APi založené na textových řetězcích (SQL) po Céčkový 
styl API

- víc různých knihoven nebo jejich verzí na tu samou věc, přitom žádná z nich 
kompletní. Typicky: naprasený Python klient/oficiální knihovna něčeho -> 
protest-knihovna, která to dělá lépe, ale nezbyl čas ji dokončit -> další série 
protest-knihoven -> refaktor původní oficiální knihovny, během kterého se ale 
na původní stabilní verzi už kašle. 

- nepřipravenost na async I/O
- není thread-safe, fork-safe, EINTR-safe
- divný způsob instalace
- slabé možnosti komunikace s autory/správci

No a většinu těchto věci splňuje - splňují :) AWS klienti a SOAP knihovny. A 
mysql.connector.

A pak jsou věci, které jsou světem sami pro sebe, např. Zope. 

Zároveň se tu veřejně omlouvám za Sklik.cz Python klienta (z roku 2012 nebo 
kolik), což lze ale aspoň omluvit tím, že ho z většiny psal tehdejší kolega 
céčkař :)

Petr Messner

17. 8. 2016 v 10:34, Pavel Schön :

> Zdravím, zajímalo by mě, jaký je váš nej*ne*oblíbenější modul, resp. balíček 
> v pythonu, zejména ze standartní knihovny. Napište také, proč tomu tak je.
> 
> Ptám se proto, že vyvíjím náhradu jednoho modulu a jsem zvědavý, jestli ho tu 
> někdo zmíní. Svůj projekt představím později.
> ___
> 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 Petr Messner
To except patří k tomu try, ne k tomu if-else. Tak to odsaď ještě o úroveň 
vlevo. 

Petr Messner

26. 7. 2016 v 21:54, Aleš Hrubý :

> 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 Petr Messner
K tomu "try:" ti chybí "except:".

PM

2016-07-26 21:32 GMT+02:00 :

> #!/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

Re: [python] Plně kvalifikovaný název místo importu?

2016-05-25 Tema obsahu Petr Messner
Ahoj,

tohle bohužel takhle nejde. 

Jedním z důvodů (aspoň podle mě :) ) je, že svět modulů a balíčků je jiný svět, 
než svět proměnných a hodnot uvnitř nich. Takže Python by vlastně nevěděl, co a 
jak naimportovat. Když to napíšete explicitně jako import, tak je jasné, který 
modul to přesně je. 

Je to vidět i z toho, že kdekoliv se nějak specifikuje cesta k Python objektu - 
např. app v gunicornu - tak je modul zřetelně oddělený od "cesty" v tom modulu.

V Javě to lze, ale to je dost možná proto, že její třídy mají ve skutečnosti 
interně plný (absolutní) název a navíc mají jasně dané místo v adresářové 
struktuře.

Petr Messner

25. 5. 2016 v 10:17, Libor Jelínek :

> Ahoj,
> existuje nějaký způsob např. zavolání funkce modulu plně kvalifikovaným 
> názvem aniž by ho bylo třeba nutné nejprv importovat?
> 
> Místo
> 
>   import tempfile
>   tempfile.gettempdir()
> 
> jen něco jako
> 
>   tempfile.gettempdir()
> 
> ?
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Python na frontendu, Brython

2016-04-24 Tema obsahu Petr Messner
Ahoj, tak se taky zapojím do diskuze :)

> existenci transpilerů neberu jako důkaz, že JS je špatný jazyk, spíš naopak.

Situace s JS v prohlížeči je podobná tomu, jako kdyby bylo nutné, aby Python 
kód fungoval i v Pythonu 1.5. Myslím, že by to dopadlo mnohem hůře, než tohle 
transpilování Javascriptu :)

> JS můžete použít i pro desktopové appky (http://electron.atom.io)

Btw. jako příklad aplikace vytvořené v Electronu se mi líbí Avocode.

> Rozhodně mi přijde jednodušší použít JS na serveru než Python v browseru, ale 
> to neznamená, že bych přestal používat Python :)

Python v browseru by sám o sobě asi fungoval, ale obával bych se, jak dobře by 
to šlo integrovat s JS knihovnami. Psát věci od začátku dnes nelze, pokud 
děláte něco netriviálního. 

> Závěrem: Kolem JS je taková aura, že je to prasečina, hipsteřina a seriózní 
> programátoři nad tím ohrnou nos.

No já nevím, nabídky práce v Javascriptu (a to i skoro bez zkušeností, jen se 
znalostí knihoven) uvádějí tak o polovinu vyšší částku, než nabídky na C++, 
Python, Ruby... Seriózní programátor má jazyk jen jako nástroj, studium novinek 
z Githubu ani návrhové vzory typu Redux mu nedělají problémy a JS se naučí za 
víkend (dobře, všechny ty věci okolo pak za měsíc). Nebo "seriózní" snad 
znamená, že si někdo stále jede svůj framework z roku 2005 a mezitím se naučil 
jQuery? 

Někdo tu psal o tom, že překládat Shakespeara člověk taky může leda tak do 
mateřštiny a tudíž skuteční polygloti neexistují - a i programovací jazyk může 
člověk dobře zvládat jen jeden. No, já bych raději spolupracoval s lidmi, co si 
i za hranicemi zvládnou zařídit, co potřebují, a s někým hodně z východu se 
domluví aspoň rukama a nohama, než s někým, kdo raději nikam ani nejede. Pokud 
budu publikovat na github kód v jazyce, kterým nevládnu moc najisto, tak si 
holt zařídím code review. Ale jinak mám (a chci mít) horší problémy, než něco s 
nějakým konkrétním jazykem. Stejně, při studiu lepší VŠ těch jazyků taky 
vystřídáte skoro deset. 

Jinak jak to třeba děláme my - Javascript je fajn na webu, ale přeci jen více 
věřím Pythonu. Má predikovatelnější sort, hezčí výjimky a tak :) Takže node.js 
jen dělá server-rendering (React) a správu sessions a všechny business věci 
vyřizuje přes nějaké API s Python službou. Možná se tomu říká microservices. Má 
to pro nás obrovské výhody v lepší testovatelnosti, geo-distribuovatelnosti, 
agilnějším vývoji...

Takže Python je ok, Javascript je ok, a všechno se zesložiťuje, aby to bylo 
jednodušší :) 

Petr


> Tom
> 
>> 23. 4. 2016 v 10:47, Ken Mijime :
>> 
>> "Seriozní" ak myslíš korporat tak ten obvykle fičí práve na legacy kode, 
>> transpileroch a oldschool kode. Byť trendy je drahé!
>> 
>>> On 23.04.2016 10:34, Jan Bednařík wrote:
>>> Ono to není zas tak růžové, že by všichni přecházeli z CoffeeScriptu, 
>>> TypeScriptu, apod. na čístý ES2015 + Babel. Lidi jsou zvyklí, že JS už 
>>> nikdo nepíše. Je to hrozně old-school a vůbec to není trendy. 
>>> Seriozní projekty dneska všechny frčí na js2js: 
>>> https://eleks.github.io/js2js/
>>> 
>>> Honza
>>> 
>>> 2016-04-23 8:59 GMT+02:00 Honza Javorek :
 V JS vznikly transpilery hlavně proto, že jazyk zaostával vývoj své 
 vlastní komunity. CoffeeScript, TypeScript, Dart, kdovíco, se pak snažily 
 dohnat chybějíci syntactic sugar a fičury. CS byl asi nejpoužívanější a 
 třeba v Apiary v něm máme podle mě 80 % codebase, byla to děsná móda a 
 hlavně se to lidem jako třeba já, Pythoňák, nebo Rubystům, psalo mnohem 
 snáz. S příchodem specky ECMAScript 6 (přejmenovaného na ES2015, protože 
 chtějí vydávat specku snad každý rok nebo tak něco) ale komunita hromadně 
 z transpileru prchá a migruje na tohle, případně na transpiler z ES2015 
 (tzn. JavaScriptu budoucnosti) do ES5 (tzn. JavaScriptu přítomnosti), 
 zvaný Babel. Transpilery budoucnost už postrádají, většinu jejich výhod 
 vyzobal samotný JS ve svých nových verzích. Sice je pořád plný chlupatých 
 závorek, z nichž se nám Pythoňákům můžou chlupy ježit, ale díky jiným 
 syntactic sugar srandám to není až taková super pruda to psát a člověku 
 nepřijde, že to je úplně matlácký jazyk. Když to není frotnend ale server, 
 tak máš navíc Node.js kde je aspoň minimální základní knihovna (takže 
 nepotřebuješ isArray nebo left pad nebo co jsou ty největší skandální npm 
 balíčky teď - ty lidi používají kvůli browseru, ne kvůli serveru) a už se 
 to dá aspoň trochu používat.
 
 Stejně bych raději psal Python, ale jen jsem chtěl napsat, že se to s tím 
 JS lepší a celkem se to dá, na serveru aspoň teda. A jelikož si připadám 
 jako JS insider na Py diskusi, chtěl jsem vám osvětlit ty věci kolem 
 transpilerů (když už se na ně zavedla řeč).
 
 Čau,
 Honza
 
 
 2016-04-22 19:48 GMT+02:00 Libor Jelínek :
> Ahoj pánové!
> Já bych taky s dovolením přispěl svým názorem: JS je fakt hrozný a proto 
> je pro něj toli

Re: [python] Roboti, REST, Flask?

2015-09-29 Tema obsahu Petr Messner
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
> 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?

2015-09-15 Tema obsahu Petr Messner
Asi to bude tohle, ale na moc aktivní vývoj, nebo spíš aktivního
maintainera, to nevypadá:

https://github.com/asciidoc/asciidoc

PM

Dne 15. září 2015 17:15 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
>> 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-11 Tema obsahu Petr Messner
Na tohle se hodí websocket, lze to provozovat i ve Flasku. Nebo rovnou použit 
něco jiného, např. ZeroMQ. 

Petr Messner

11. 9. 2015 v 10:29, Marek Nožka :

> Ahoj
> 
> Potřeboval bych malou radu. Učím programování(Python) na SŠ. Takže jsem
> vymyslel(okoukal), že si budeme hrát na Roboty. Bude to tahová hra.
> Jednotliví roboti(studenti) se připojí k serveru a budou mezi sebou soutěžit
> o nejlepší algoritmus, který projde bludištěm podle zadaných pravidel.
> 
> Na serverovou část jsem chtěl použít Flask a vytvořit jednoduché REST API.
> Řeším ale jak mám obsloužit více klientů tak, aby na sebe navzájem počkali.
> Každý klient by měl říct, kam táhne. Ale odpověď můžu poslat až potom, co
> všichni pošlou požadavek. Napadli mě dvě řešení.
> 
> 1) Klient pošle požadavek a čeká na odpověď. Stream odpovědi se ale zastaví
>   a čeká se až se ozvou další klienti. Tohle nevím jak bych ve Flasku
>   udělal -- pokud to tedy vůbec jde. Pokoušel jsem se to vygooglit ale na
>   nic kloudného jsem nepřišel. 
> 
> 2) Klient pošle požadavek a za nějakou chvilku se zeptá jestli má
>   server už odpověď. To je zase více složitosti na straně klienta.
> 
> Protože jsem nic podobného zatím nikdy nedělal, budu vděčný za každou
> připomínku, poznámku nebo radu. Co za knihovnu/framework byste mi
> doporučovali. 
> 
> Dky
>   Marek
> 
> -- 
> @ @ @   Marek Nožka
> '.@
> :*`@   email: marek <@t> tlapicka  net
> `*'   jabber: tlapicka <@t> mitranet  cz
>  ::  web: http://tlapicka.net/
>  `'
>  `'   Powered by Debian GNU/Linux
>  `.**'
>¨¨
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Paměťově náročné řazení

2015-06-17 Tema obsahu Petr Messner
Nebo pustit Hadoop...

Kam až jsme se to zase dostali :)

PM

Dne 17. června 2015 12:51 Petr Viktorin  napsal(a):

> 2015-06-16 20:34 GMT+02:00 Pavel Schön :
> > https://en.wikipedia.org/wiki/External_sorting
>
> To je dobrá poznámka. Možná bude nejlepší to strčit do souboru a
> zavolat unixovou utilitku sort :)
>
> > Dne pondělí 15. června 2015 22:36:11 UTC+2 Lumír Balhar napsal(a):
> >> 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
>
___
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-16 Tema obsahu Petr Messner
Dne 16. června 2015 11:03 Jirka Vejrazka 
napsal(a):

>
> Proste z toho stringu odvodis nejakou hodnotu, ktera umozni razeni. A
> sorted() ti podle ni ochodne seradi, pro kazdou polozku se ta hodnota "key"
> bude pocitat jenom jednou (narozdil od "cmp").
>

No a to je právě ten problém - sort zavolá key jenom jednou a výsledek si
zapamatuje, jenže je toho tolik, že to zabere spoustu paměti. Proto je tady
ten cmp styl lepší, nebo ty objekty, co to vypočívávají "lazy".

PM
___
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 Petr Messner
Vypadá to, že si sort hodnoty vrácené z key funkce ukládá. To se dá obejít
tak, že si sám naimplementuješ komparátor, který bude řetězce vytvářet až
podle potřeby.

def better_sort(self):
self.indexes.sort(cmp=self._sort_cmp)

def _sort_cmp(self, a, b):
a_value = self[a]
b_value = self[b]
return cmp(a_value, b_value)

Jenže v Pythonu 3 už takhle jednoduše komparátor použít nekde (sort prostě
ani nemá parametr cmp), ale dá se to obejít takto:

def better_sort(self):
from functools import cmp_to_key
self.indexes.sort(key=cmp_to_key(self._sort_cmp))

def _sort_cmp(self, a, b):
a_value = self[a]
b_value = self[b]
if a_value < b_value:
return -1
if a_value > b_value:
return 1
return 0

PM

Dne 15. června 2015 22:36 Lumír Balhar  napsal(a):

> 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] UHF RFID čtečka

2015-05-16 Tema obsahu Petr Messner
Njn, když chceš hackovat, tak na to musíš mít křídla :)

Z chyby 'generator' object has no attribute 'set_configuration' je zřejmé,
že to usb.core.find vrací iterátor. No a proč to vrací iterátor?
Protože deklarace
té funkce

je

def find(find_all=False, backend = None, custom_match = None, **args):

a když to voláš bez keyword argumentů, tak se jako find_all nastaví to
0x10C48, což se interpretuje podobně jako find_all=True.

Takže o krok zpět k ValueError: No backend available.  Podívej se do
zdrojáku, co to dělá. Prochází to moduly usb.backend.libusb1, u
sb.backend.libusb0 a usb.backend.openusb a volá to jejich funkci
get_backend(), která se snaží danou DLL (nebo .so) knihovnu načíst
(protože usb.backend.*
jsou jen ctypes wrappery "céčkových" knihoven). Takže problém je v tom, že
žádnou z těch knihoven buď nemáš k dispozici, nebo ji pyusb nemůže najít.

PM

Dne 16. května 2015 16:28 "Ing. Vladislav Ludík"  napsal(a):

> Ještě chyby:
>
> dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60)
>
> hlásí chybu:
>
> dev = usb.core.find(idVendor=0x10C48, idProduct=0xEA60)
>   File "build\bdist.win32\egg\usb\core.py", line 1199, in find
> raise ValueError('No backend available')
> ValueError: No backend available
>
> Když jsem změnil řádek na:
>
> dev = usb.core.find(0x10C48, 0xEA60)
>
> program projde dále, ale hlásí chybu:
>
> dev.set_configuration()
> AttributeError: 'generator' object has no attribute 'set_configuration'
>
> Co s tím dále, nevím.
>
>
> Díky Vláďa
> ___
> 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 Petr Messner
Měnitelnost/neměnitelnost je jedna věc a identita/hodnota druhá. Můžu mít
dva neměnitelné objekty stejné hodnoty, každý z nich ale bude existovat
zvlášť - na své vlastní adrese v paměti. Snažit se, aby všechny takové
objekty byly automaticky deduplikovány, by byla jen práce navíc.

PM

Dne 11. května 2015 21:59 Marek Nožka  napsal(a):

> Zdravím.
>
> Můžete mi prosím toto někdo vysvětlit? Myslel jsem si, že datové typy jsou
> buď měnitelné, nebo neměnitelné --- ale tady do vypadá, že int je něco mezi
> tím. Díky.
>
> Marek
>
> On Mon, 11 May 2015 03:46:33 -0700 (PDT) Pavel Schön 
> wrote
> to python@py.cz:
>
> > $ 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
> >
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] změna hodnoty v modulu v inicializaci def __init__ (self)

2015-03-25 Tema obsahu Petr Messner
Šlo by, když už to teda musí být...

Za předpokladu, že v modul.py je tohle:

class Trida:
def __init__(self):
self.var = 100

def program(self):
print self.var

Pak to lze udělat takto, je to spíš hack:

import modul

t = modul.Trida()
t.program() # => 100

StaraTrida = modul.Trida

class NovaTrida (StaraTrida):

def __init__(self):
StaraTrida.__init__(self)
self.var = 50

modul.Trida = NovaTrida

t = modul.Trida()
t.program() # => 50

Je to to, co potřebujete?


Dne 25. března 2015 17:13 "Ing. Vladislav Ludík"  napsal(a):

> Bez úpravy modulu to asi nejde, že ?
>
> Vlada
>
> Dne 25.3.2015 v 17:06 starenka . napsal(a):
>
>  class Trida:
>>  def __init__(self, var=100):
>>  self.var = var
>>
>>  def program(self):
>>  print self.var
>>
>> T = Trida(var=500)
>> T.program()
>>
>>> 500
>>>
>> ---
>> 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-03-25 16:29 GMT+01:00 "Ing. Vladislav Ludík" :
>>
>>> Zdravím všechny,
>>>
>>> prosím o radu, jak změnit hodnotu v modulu:
>>>
>>> class Trida:
>>>  def __init__(self):
>>>  self.var = 100
>>>
>>>  def program(self):
>>>  print self.var
>>>
>>> Naimportuju modul a zavolám:
>>>
>>> T = Trida()
>>> T.program()
>>>
>>> vytiskne 100
>>>
>>> Jak nastavím hodnotu self.var ?
>>>
>>> Děkuji Vlada
>>> ___
>>> 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] Lock

2015-02-10 Tema obsahu Petr Messner
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  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  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

Re: [python] Lock

2015-02-10 Tema obsahu Petr Messner
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  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

Re: [python] Lock

2015-02-09 Tema obsahu Petr Messner
V čem není InnoDB ACID, při nastavení patřičného isolation levelu?

PM

Dne pondělí 9. února 2015 Jan Bednařík  napsal(a):

> Jestli potřebuješ aplikaci, která je nezávislá na druhu databáze, použij
> SQLAlchemy, která ti poskytne abstrakci nad různými databázovými backendy.
>
> Jinak na myisam i innodb je špatné to, že nejsou ACID a dříve nebo později
> tě někde pořádně vypečou. Jak už psal Honza Král, 99% problémů s databází
> je MySQL. Jestli neděláš jen nějaký hobby projektík pro sebe, použij raději
> PostgreSQL.
>
> Honza
>
>
> 2015-02-09 17:36 GMT+01:00 mtip  >:
>
>>  Já tedy nevím, co je třeba na myisam špatného pro práci s penězi.
>> 1. Potřebuju aplikaci, která je více nezávislá na druhu databáze.
>> 2. Transakce pro write to neřeší, jedině read a tu vzhledem k možné době
>> trvání zámku nechci použít
>>
>> Nicméně už sem to vyřešil jednoduše viz tip Honzy:
>>
>> >A samozrejme, jako vzdy, je lepsi varianta bezzamkova:
>> >"UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0"
>>
>> Mirek
>> 
>> 9. února 2015, 17:10:21, napsal jste:
>>
>>  Transakce jsem použít nechtěl, protože databáze nemusí být innodb
>> dokonce ani mysql.
>>
>>
>> Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí
>> jen náhodné mazání uložených dat.
>>
>> PM
>>
>> ___
>> Python mailing list
>> python@py.cz 
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Lock

2015-02-09 Tema obsahu Petr Messner
>
> Transakce jsem použít nechtěl, protože databáze nemusí být innodb dokonce
> ani mysql.
>
>
Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí jen
náhodné mazání uložených dat.

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

Visit: http://www.py.cz

Re: [python] Python 3 a další druhy (TkinterPython, ...)

2014-12-31 Tema obsahu Petr Messner
Python je jazyk, wxpython, pyqt atd. jsou knihovny. Můžeš používat víc knihoven 
dohromady. Ale je nerozumné míchat knihovny, které dělají to samé, takže se 
budeš muset rozhodnout mezi qt, wx a tak. Ale furt to bude běžet v Pythonu. 

Píšeš, že chceš "normální" okénkovou aplikaci. Tj. žádný print nebo input. Tak 
se podíváš na tutoriál gui knihovny a najednou ti vadí, že tam žádný print ani 
input není? :)

Petr Messner

31. 12. 2014 v 19:52, Daniel Hubáček :

> Zdravím,
> 
> začal jsem se učit s programováním v Pythonu. Bylo mi řečeno, že z něj udělám 
> cokoliv, i normální aplikace (slovem normální myslím něco, co se otevře v 
> normálním okně a ne v konzoli)... Poté jsem zjistil, že se Python dělí na 
> wxPython, tkinterPython atdatd. Mylsel jsem, že Python 3 je základ a pak mohu 
> začít s konkrétním "druhem". Dnes jsem ze zvědavosti nahlédl konkrétně do 
> tutoriálu toho tkinterPythonu a zjistil jsem, že přesto že jsem četl první 
> věci celého tutoriálu, nevidím tam nic jako "print","input", ... Ale že tam 
> jsou uplně jiné značky.
> 
> Vysvětlil by mi prosím někdo (pokud možno česky, jsem začátečník, těm vašim 
> odborným výrazum moc nerozumim :D ) jak to tedy je? Je Python základem pro 
> vše, a nebo si o tom mám něco přečíst a rozhodnout se rovnou pro konkrétní 
> druh...
> 
> 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] Využití Pythonu

2014-12-28 Tema obsahu Petr Messner
Ahoj,

na webu python.org existuje trochu nepřehledná stránka Success Stories:
https://www.python.org/about/success/

viz také http://python.cz/#companies

Kolem čeho se pohybuji, tak se Python používá buď jako hlavní jazyk při
vývoji webových aplikací, a/nebo při vytváření pomocných programů, skriptů
a infrastruktury okolo.

Myslím si, že každý pořádný programátor by měl znát i jazyk typu Python
nebo Ruby, i kdyby primárně dělal projekty v Javě, C++ nebo C#, tak v
Pythonu si mnohem snadněji udělá věci typu zpracování a generování dat,
automatizace buildu a testování, různé pomocné skripty...

Takové ty typické (případně i méně typické) Windows aplikace se v Pythonu
dají udělat taky, podívej se třeba na

http://showroom.qt-project.org/

http://kivy.org/#gallery

http://takluyver.github.io/posts/so-you-want-to-write-a-desktop-app-in-python.html

http://en.wikipedia.org/wiki/List_of_Python_software#Applications

Někdy je v Pythonu udělaná jen část aplikace nebo pluginy, např. herní
engine v C++, ale skripty definující chování hry jsou v Pythonu.

Zdar

Petr


Dne 28. prosince 2014 9:42 Daniel Hubáček  napsal(a):

> Dobrý den,
>
> nedávno jsem se rozhodl, že se naučím další programovací jazyk, alespoň
> trošku. Jeden kamarád, který se v programování vyzná, mi doporučil Python,
> že se uplatní všude. Já bych se chtěl ale zeptat, jak přímo se dá uplatnit?
> Jde v tomto jazyce udělat nějaký "prográmek" který se nebude ovládat v
> konzoli?
> Prostě normální program v normálním Windowsovém okně... Jde to? Má se cenu
> ten Python vůbec učit?
>
> 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] Tkinter

2014-09-14 Tema obsahu Petr Messner
Ahoj,

příčina je, jak napsal Petr Blahoš, v rozdílném kódování - do souboru jsi
napsal, že je to UTF-8, ale v PSPadu to ukládáš jako CP1250. Je to vidět na
tom screenshotu.

Někde v nabídce Soubor by měla být možnost uložit soubor pod jiným
kódováním, zvol UTF-8, pak by to mělo fungovat. Není nutné přepisovat
všechny texty tak, aby byly bez háčků a čárek :)

V dnešní době už ani není důvod používat cokoli jiného než UTF-8, pak jsou
z toho akorát takovéto potíže. PSPad s UTF-8 umí pracovat, stejně jako
jakékoli další rozumné editory a IDE.

PM

Dne 14. září 2014 10:17  napsal(a):

> Dobrý den
>
>
> Chci Vás poprosit jestli mi nepomůžete. Učím se programovat v python a
> ted jsem narazil na 11. lekci kde se učí tkinter (
> http://programujte.com/clanek/2005100902-python-11-lekce/ ). Všude se
> píše že se to
> automaticky instaluje s Pythonem. Ale když chci aby mi vypsal jen
> ahoj světě jak je to v článku přesně jak to tam je napsaný to okopíruji
> a dám do pythonu tak mi to hlásí chybu a už nevím co mam nainstalovat
> aby mi to chodilo. Moc prosím můžete mi poradit.
>
> http://johonek.rajce.idnes.cz/Python#tkinter.jpg
>
>
> 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] python 3 cp1250 retazec do utf-8

2014-08-14 Tema obsahu Petr Messner
Metody encode a decode v Pythonu 3.4 normálně fungují:

>>> "ěšč".encode("cp1250")
b'\xec\x9a\xe8'
>>> "ěšč".encode("cp1250").decode("cp1250")
'ěšč'

PM


2014-08-14 15:58 GMT+02:00 Zdenko Podobný :

> 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...
>
> --
> Zdenko
>
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Má někdo čas osvěžit si nebo naučit se Git? Potřebuji kontrolní oko.

2014-08-07 Tema obsahu Petr Messner
Pojem "killer feature" bych raději přeložil jinak než "vražedná vlastnost"
:)

http://git-scm.com/book/cs/V%C4%9Btve-v-syst%C3%A9mu-Git

PM


Dne 7. srpna 2014 9:47 Petr Přikryl  napsal(a):

> Zdravím všechny,
>
> Jistě mnozí z vás používáte Git jako svůj oblíbený systém pro správu verzí.
> Pokud nastane chvíle, když už vám programování leze krkem, možná
> byste si mohli přečíst něco trošku nesouvisejícího. V edici CZ.NIC
> (http://knihy.nic.cz/) vyšel už dříve překlad knihy "Pro Git" (Scott
> Chacon).
>
> Tato kniha je téměř nedílnou částí oficiálního serveru systému Git
> (http://git-scm.com/) -- viz http://git-scm.com/book a její překlad
> (nevím, kdo ho spáchal) jsem převedl na českou podobu těchto
> stránek -- viz http://git-scm.com/book/cs
>
> V současnosti jsem aktualizoval obsah překladu podle inovací v originálu.
> Struktura už je stejná jako u originálu, včetně značkování a počtu všech
> odstavců ve všech kapitolách (pomáhám si Pythonem ;).
> Ale potřeboval bych více očí, které by si to přečetly nestrojově, protože
> obsah odstavců strojově moc nezkontroluji.
>
> Momentálně jsem revidoval kapitoly 1 až 3 včetně. Pokud byste
> v nich našli nějakou chybu, dejte mi, prosím,  vědět přes
> https://github.com/pepr/progit/issues nebo jinak.
>
> Mějte se fajn,
> 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] dynamicke metody

2014-04-24 Tema obsahu Petr Messner
Ahoj,

nejzásadnější problém, který tam vidím, je zranitelnost proti SQL injection:

http://xkcd.com/327/

Místo celého Template prostě ty parametry předej do execute:

http://initd.org/psycopg/docs/usage.html#query-parameters

Doporučuji podívat se na SQLAlchemy (http://docs.sqlalchemy.org/en/latest/).
Skládá se ze dvou částí: ORM a Core. Core řeší jednotnou práci s databází v
Pythonu pro více typů databází (PostgreSQL, MySQL, MS SQL, Oracle). Až
začneš řešit, že placeholdery v query pro parametry jsou někde "?" (např.
SQLite) a jinde "%s", tak přesně s tímhle ti to pomůže. Nebo třeba
connection pooling nebo introspekce. No a ORM je ORM... to je trochu víc
high level přístup, nevím, jestli se o tom teď rozepisovat... Až budeš
řešit, že pro dvacet tabulek tam máš vlastně dvacet skoro stejných sad SQL
dotazů, že by to místo slovníků mohlo vracet objekty a jak potom volat SQL
dotazy nějak automaticky při práci s těmito objekty a jak řešit různé
situace s najoinovanými dalšími objekty, tak se na to podívej :)

Máš nějaký konkrétnější dotaz nebo problém, který chceš vyřešit? Není mi
úplně jasné, na co se vlastně ptáš. Ještě mě napadá, že asi budeš chtít,
aby metoda _sql() vracela funkci. To uděláš takhle pomocí closure funkce:

def _sql(self, query):
def f(**kwargs):
self._CUR.execute(query, kwargs)
return f

Nebo můžeš místo toho implementovat metodu __getattr__().

Tu metodu del budeš asi muset pojmenovat jinak, protože del je klíčové
slovo.

Jinak takovému hraní fandím. Samozřejmě je to znovuvynalézání kola. Ale je
to nejlepší způsob, jak zjistit, jak kolo vlastně funguje :)

PM

Dne 25. dubna 2014 0:23 Marek Sirový  napsal(a):

> Zdravim,
>
> behem studia pythonu a hrani si s Flaskem a databazemi obecne me napadla
> abstrakce nad sql, kterou bych si rad zkusil vytvorit, tusim, ze nejde o
> nic efektivniho, nebo noveho, ale nejsem programator a python mam jako
> konicek a toto me zajima ciste ze studijnich duvodu, rad bych vedel, jak se
> to da vyresit, proto prosim nevymlouvejte mi to, ale poradte  cestu... Nebo
> ukazte kde mam chybu
>
> Predstava:
>
> mam tridu db, ktere dam jako slovnik jmeno metody a sql dotaz, tim se mi
> vytvori objekt s metodami, kterym bude stacit jen predavat parametry a
> vrati se mi data z databaze. cili melo by fungovat neco takoveho:
>
>
> #!/usr/bin/env python3
> from string import Template
> import psycopg2
>
>
> ### trida s dynamickymi metodami
> class db:
> """ test dynamickych metod
> """
>
> def _sql(self, _sql = None, **kwargs):
> """ predloha pro dynamicke funkce
> """
> query = Template(_sql).substitute(**kwargs)
> print(query)
> _self._CUR.execute( query )
> return _self._conn.commit()
>
>
> def __init__(self, SQL = None):
> if SQL is None:
> raise(KeyError("Musite definovat slovni SQL"))
>
> # DB CONNECT
> self._conn = psycopg2.connect("dbname=mail user=marek",
> cursor_factory= psycopg2.extras.DictCursor)
> self._CUR = self._conn.cursor()
>
> # create methods by SQL dict
> for _func, _sql in SQL.items():
> setattr(self, _func, self._sql(_sql = _sql))
>
>
> def close(self):
> return(True)
>
>
>
> if __name__ == '__main__':
> '''Priklad pouziti
> - pridam zaznam pepa
> - smazu zaznam pepa
> '''
> _SQLS = {
> 'add' : 'insert into tabulka (name, age, email) VALUES ($name,
> $age, $email);',
> 'edit' : 'update tabulka set age = $age, email = $email where
> name = $name;',
> 'del' : 'remove from tabulka where name = $name;',
> }
>
> data = db(_SQLS)
> data.add(name = 'Pepa', age = '12', email = 'pep...@gmail.fi')
> data.del(name = 'Pepa')
> data.close()
>
> Omlouvam se za nedodrzovani PEP, skutecne nejsem moc programator a obcas
> docela prasim v zapalu boje.
>
> Predem diky za vysvetleni, pomoc, nasmerovani...
> ___
> 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

2014-02-26 Tema obsahu Petr Messner
>  Pracovat s pythonem a ještě s linuxem by bylo sice super, pochybuji, že
> dostudovaný mechanik a nedostudovaný archivář by byla posila do takovýho
> týmu. Na to si přijdu moc malý. A bohužel, z jazyků opravdu dobře umím leda
> tak latinu, a tak kupodivu není nijak oblíbená :/


Proč ne. Když může být programovací posilou ekonom, biolog, filosof,
strojař, tvůrce hudebních nástrojů, znám i pár lidí bez maturity. Co na
tom. Je to spíš o ambicích, v podstatě si stačí pro začátek přečíst pár
knížek...
Vzdělání (VŠ) v oboru má svůj smysl, nechci to moc pitvat, teď o je o tom
flamewar na zdrojak.cz, ale není vyloženě nezbytné. V pracovních nabídkách
se mezi requirements často píše něco jako "B.S. or higher in Computer
Science (or equivalent work experience)" (citace z twitter.com/jobs).
Vždycky je tam nějaké to "equivalent".

Zkoušel jsi se do něčeho zapojit? Mělo to nějaký výsledek? Osobně si
myslím, že existují i (pracovní) místa pro jen mírně pokročilé. Přišel bys
třeba na Pyvo?

Abych odpověděl na další otázky - "dělám weby" (v poslední době e-shop a
startup - webová služba, předtím pár let Seznam.cz) a stále studuji.

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

Visit: http://www.py.cz

Re: [python] Platební brána

2014-02-18 Tema obsahu Petr Messner
Třeba něco takového? http://qr-platba.cz/

PM


Dne 16. února 2014 23:26 Ctibor.Plasek  napsal(a):

> Ahoj.
>
> Vím, že tato problematika se přímo Pythonu netýká, ale třeba jste se někdy
>
> s takovým problémem setkali a dokázali byste mi poradit.
>
> Dělal jsem e-shop a potřeboval bych toto:
>
> při způsobu úhrady, aby si zákazník vybral nějakou konkrétní banku -
> jelikož mám mBank, tak třeba tuto.
>
> Jak vygenerovat informace, aby když si zákazník klikne na mBank, abych ho
> přesměroval na ttuto banku
>
> a současně, až se do ní přihlásí, tak aby už měl přednastavený formulář k
> úhradě?
>
> Je mi jasné, že přes goPay anebo PayU toto půjde. Ale jak to udělat i bez
> těchto platebních bran?
>
>
> Předem díky za jakékoliv názory a rady.
>
>
> Ctibor
>
> ___
> 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 freehosting

2014-02-05 Tema obsahu Petr Messner
Pokud "free" = cena jedno, dvou... piv za měsíc, pak existují
hostingy/aplikační cloudy, jako je rosti.cz, heroku.com nebo Google App
Engine. Pokud zvládneš administraci linuxového serveru, tak není problém
Python provozovat v nějakém levném VPS třeba u wedos.cz nebo virtio.cz.

PM



Dne 5. února 2014 16:09 Marcus Scalpere  napsal(a):

> Pěkný den přeji,
> v první řadě bych chtěl poděkovat za rady, opravdu to fungovalo po kratším
> bádání. Nyní další otázka - jak je na tom python a freehosting? A možná
> obecněji vzato python na webu? Přál bych si něco málo zkusit (opravdu málo,
> nic v djangu nebo podobném molochu), vlastně ani nevím, jestli vůbec
> potřebuji framework. Úplně by mi stačilo něco, co předávat data z formuláře
> a podobné drobnosti. Žádný šablony, databáze...Mám s tímhle mikroskopické
> zkušenosti s PHP. Takže doporučení, postřehy?
> ___
> 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] sháním Pythonistu na full time do Prahy - zajímavý plat :-)

2013-11-09 Tema obsahu Petr Messner
To, že se pro nějakou technologii špatně shání lidi, zase tak dobrá vizitka 
není. Asi záleží na úhlu pohledu :)

Petr Messner

9. 11. 2013 v 23:19, Vladimir Macek :

>> On 9.11.2013 21:26, Petr Messner wrote:
>> Napadá mě, že by bylo zajímavější, kdyby sem psali naopak spíš ti, co
>> práci hledají :)
> 
> A to zas pro mě je dobrou vizitkou oblíbeného jazyka současný stav. :)
> 
> V.
> 
> 
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] sháním Pythonistu na full time do Prahy - zajímavý plat :-)

2013-11-09 Tema obsahu Petr Messner
Soudě podle LinkedIn je to ta Lada. Na Lady profilu mě zejména zaujalo
"Specialties:
add your skills as ..." - někdy se vyplatí přečíst, co se copypastuje,
jestli tam náhodou není potřeba něco vyplnit nebo umazat :)

Napadá mě, že by bylo zajímavější, kdyby sem psali naopak spíš ti, co práci
hledají :)

PM


Dne 9. listopadu 2013 20:48 Petr Blahos  napsal(a):

> Jen tak pro zajímavost, je to Lada, nebo Láďa?
> --
> Petr
>
>
>
> 2013/11/9 
>
> Dne čtvrtek, 7. listopadu 2013 20:05:44 UTC+1 tomas.wa...@gmail.comnapsal(a):
>> > Vím, že ti to nepomůže, ale malinko to má souvislost.
>> >
>> > https://plus.google.com/115212051037621986145/posts/R8jEVrobbRj
>>
>> Děkuji. :-) Krásný víkend přeji.
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
>
> --
> _
> http://sites.google.com/site/petrsstuff/
>
> ___
> 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 čo som zostrojil a nefunguje to

2013-10-18 Tema obsahu Petr Messner
Ahoj,

podmínku ukončovat nemusíš. Toto je funkční a korektní podmínka:

if tohle:
tamto()

Funkce se dá dát i do podmínky. Např. takto:

if jmeno == "Petr":
def pozdrav():
print("Ahoj")
pozdrav()

# ale když je funkce definovaná v podmínce, tak
# v případě nesplnění podmínky ta funkce nebude
# existovat, takže mimo tu podmínku by se neměla volat

pozdrav() # pokud jmeno != "Petr", tak vylítne výjimka

Ale není to moc hezké, není důvod, proč by měla být funkce definována
uvnitř podmínky. Proč ji prostě nedefinovat "normálně" a pak ji v podmínce
jen zavolat?

Příště kdyžtak raději ukaž i kód (ne kilobajty kódu, ale jen to, na co se
ptáš), ať je situace jasnější.

Petr



2013/10/18 xteam 

> Dobrý večer!
>
> Mám program ktorý rozhoduje na základe mena  či spusti sa dalsi program
> alebo sa prida novy užívateľ.
> alebo ak v mene je nadávka  program sa ukonči.Chcel by som pridať ďalšiu
> funkciu  ale neviem či sa dá do podmienky teda jej tela vnoriť nova funkcia
> a či potom stačí uzavrieť iba funkciu teda ju zavolať alebo musím ukončiť
> aj podmienku  pomocou else.
> __**_
> 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] tkinter a win32ui

2013-10-16 Tema obsahu Petr Messner
To root.mainloop() spustí smyčku, která zpracovává eventy. Mělo by se to
ukončit po zavření posledního okna.

Viz také http://stackoverflow.com/a/8685760/196206

Toto je u GUI (i jiných, třeba síťových) programů obvyklý design. Pokud
chceš něco provádět "vedle" té smyčky, tak pro to ty knihovny (v tomto
případě tkinter) obvykle poskytují možnosti, jak to udělat.

PM



Dne 16. října 2013 11:04 mtip  napsal(a):

> Zdravim všechny,
>
> Přišel jsem na zajímavej problém.
> Pokud se naimportuje Tk a win32ui, proces nikdy neskončí.
>
> Tady je ukázka:
>
> from Tkinter import Tk
>
> import win32ui
>
> root = Tk()
> root.title('Test')
> root.mainloop()
>
>
>
> Mirek N.
>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] volání funkce, kde název je uložen v proměnné

2013-10-09 Tema obsahu Petr Messner
Proč něco takového chceš?

PM


Dne 9. října 2013 15:45  napsal(a):

> Mám název funkce v proměnné, tak bych se chtěl zeptat jak tu funkci můžu
> zavolat? jde mi o to abych dále té funkci mohl dát další parametry
> ___
> 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] How To Think

2013-08-03 Tema obsahu Petr Messner
Nazdar

já jsem to nějak moc nepročítal, ale zahlédl jsem tam podobný kód:

 def  double_stuff_p ( a_list ):
 new_list = []
 for  value in a_list:
 new_list += [2*value]
 return  new_list

Co ty mezery? To asi nebude podle PEP 8 :) Jestli je to materiál pro
začátečníky, jak správně chápu, tak o to víc by se měly dodržovat nějaké
konvence, ať se to lidi rovnou naučí psát správně.

Možná by bylo fajn mít možnost komentovat přímo konkrétní řádky, něco jako
např. na Githubu, pro reportování překlepů typu "for itemx> in seqx:". Ono
vůbec kdyby zdroják knihy byl na githubu, tak bych místo toho mohl poslat
rovnou pull request.

A proč je na http://howto.py.cz/ nějaký Zope? Vždyť to jenom zbytečně
vystraší :)

Ale jinak super počin.

PM




Dne 3. srpna 2013 10:31 Tovim  napsal(a):

> Buďte pozdraveni, mládenci a panny.
>
> ** **
>
> Právě jsem zavěsil přepracovaný překlad How To Think Like
>
> a Computer Scientist in Python (3) na http://howto.py.cz/index.htm 
>
> 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] Nabídka práce pro příznivce programovacího jazyka Python

2013-07-03 Tema obsahu Petr Messner
Dne 2. července 2013 21:54 Jaroslav Lukesh  napsal(a):

> Zkuste Zope, má nativní stromovou databázi, dokonce umí i SQL
> "zestromovatět".
>
> Tahle databáze je geniální na katalogovou strukturu - typicky starý dobrý
> yahoo a seznam než to začali dělat  i s fultextem, sklady, náhradní díly,
> cestovky, prostě ideál. Dědí to vlastnosti, proměnné, obsahy, akorát to
> chce ho pochopit oč tam vlastně jde.
>
> Protože zope.org je poněkud nepřehledná (aspoň por mně), tak vám tady
> přes konferu pomůžem ho nasadit a vybrat to co bude třeba.
>
> Vůbec se nemusíte učit ten zparchantělý TAL...


Nevím jak ostatní, ale mě tento příspěvek o kvalitě Zope teda vůbec
nepřesvědčil. Znám šablonovací enginy s mnohem přehlednější syntaxí, než co
je v ukázce. Včetně Tengu. Může se někdo vůbec divit, že Zope není
rozšířený? :)

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

Re: [python] Ponořme se do Python(u) 3

2013-06-27 Tema obsahu Petr Messner
Přímo v knize vidím odkaz na

http://diveintopython3.py.cz/examples/humansize.py

Je to ono?

PM


Dne 27. června 2013 14:53 Roman Frajt  napsal(a):

> Snažím se jako začátečník začít učit Python podle knihy "Ponořme se do
> Python(u) 3", ale hned na začátku jsem narazil na tento pokyn:
> Spusťme program z příkazového řádku. Pod Windows to bude vypadat nějak
> takto:
> c:\home\diveintopython3\examples> c:\python31\python.exe humansize.py
> 1.0 TB
> 931.3 GiB
>
> Bohužel já nemám takové příklady (examples) vůbec v počítači a nepodařilo
> se mi zjistit, kde je stáhnout. Prosím poraďte.
>
> Roman
> __
> > Od: python-requ...@py.cz
> > Komu: 
> > Datum: 27.06.2013 12:00
> > Předmět: Python Digest, Vol 104, Issue 4
> >
> >Příspěvky do konference  Python zasílejte na adresu:
> >   python@py.cz
> >
> >Pro přihlášení nebo odhlášení použijte WWW rozhraní na adrese"
> >   http://www.py.cz/mailman/listinfo/python
> >nebo použijte elektronickou poštu, zašlete slovo help v těle dopisu na
> >adresu
> >   python-requ...@py.cz
> >
> >Správce konference můžete nalézt na adrese
> >   python-ow...@py.cz
> >
> >Když budete odpovídat na příspěvek, změňte, prosím, Subject: na něco
> >rozumnějšího než je: "Re: Contents of Python digest..."
> >
> >
> >Dnešní menu:
> >
> >   1. o řádek níž (Roman Frajt)
> >   2. Re: o řádek níž (starenka .)
> >   3. Re: o řádek níž (Petr Přikryl)
> >
> >
> >--
> >
> >Message: 1
> >Date: Thu, 27 Jun 2013 09:43:34 +0200
> >From: Roman Frajt 
> >To: python@py.cz
> >Subject: [python] o řádek níž
> >Message-ID: <20130627094334.db7db...@centrum.cz>
> >Content-Type: text/plain; charset=UTF-8
> >
> >Zdravím,
> >
> >právě jsem se začal učit jazyk Python jako spíše úplný začátečníky (jen
> základy Pascalu).
> >Nainstaloval jsem si Python verzi 3.3. , když ale zadám jednoduchý text
> do Python Shell:
> >print  "hello world!"
> >
> >toto je výsledek:
>  print "hello world"
> >SyntaxError: invalid syntax
> >
> >Zkusil jsem si nainstalovat verzi 2.7. 5 a do ní když zapíši to samé, tak
> je výsledek správně (napíše se Hello World). Obecně když zadám z učebnice
> na http://howto.py.cz/ jakýkoliv text přímo z učebnice, výsledek je error
> ve verzi 3.3 a správný výsledek ve verzi 2.7 5. Jak je to možné?
> >
> >Dále by mě zajímalo jak mohu v Python Shell za prompt napsat příkaz na
> více řádků, protože když napíšu první řádek a chci začít psát na druhý
> enterem nebo shift+enter už se vykoná příkaz. Jak tedy přejít o řádek níže
> a psát dále bez vykonání příkazu, jinak než enterem?
> >
> >Děkuji
> >Roman
> >
> >
> >--
> >
> >Message: 2
> >Date: Thu, 27 Jun 2013 09:48:08 +0200
> >From: "starenka ." 
> >To: Konference PyCZ 
> >Subject: Re: [python] o řádek níž
> >Message-ID:
> >i-a...@mail.gmail.com>
> >Content-Type: text/plain; charset=UTF-8
> >
> >Ahoj,
> >
> >v py3 je print funkce, tedy musis psat "print('fapfapfap')"
> >
> >Pokud chces zajet rovnou od py3, tady je knizka v cestine
> >http://diveintopython3.py.cz/index.html pro dalsi matrose cekni
> >python.cz
> >
> >Jinak jako interaktivni shell je lepsi pouzit privetivejsi "shelly" a
> >to treba ipython nebo bpython.
> >
> >Mej se
> >
> >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/6/27 Roman Frajt :
> >> Zdravím,
> >>
> >> právě jsem se začal učit jazyk Python jako spíše úplný začátečníky (jen
> základy Pascalu).
> >> Nainstaloval jsem si Python verzi 3.3. , když ale zadám jednoduchý text
> do Python Shell:
> >> print  "hello world!"
> >>
> >> toto je výsledek:
> > print "hello world"
> >> SyntaxError: invalid syntax
> >>
> >> Zkusil jsem si nainstalovat verzi 2.7. 5 a do ní když zapíši to samé,
> tak je výsledek správně (napíše se Hello World). Obecně když zadám z
> učebnice na http://howto.py.cz/ jakýkoliv text přímo z učebnice, výsledek
> je error ve verzi 3.3 a správný výsledek ve verzi 2.7 5. Jak je to možné?
> >>
> >> Dále by mě zajímalo jak mohu v Python Shell za prompt napsat příkaz na
> více řádků, protože když napíšu první řádek a chci začít psát na druhý
> enterem nebo shift+enter už se vykoná příkaz. Jak tedy přejít o řádek níže
> a psát dále bez vykonání příkazu, jinak než enterem?
> >>
> >> Děkuji
> >> Roman
> >> ___
> >> Python mailing list
> >> Python@py.cz
> >> http://www.py.cz/mailman/listinfo/python
> >
> >
> >--
> >
> >Message: 3
> >Date: Thu, 27 Jun 2013 10:05:46 +0200
> >From: Petr Přikryl 
> >To: Konference PyCZ 
> >Subject: Re: [python] o řádek níž
> >Message-ID: <20130627100546.f9277...@atlas.cz>
> >Content-Type: text/plain; charset=UTF-8
> >
> >Ahoj Romane,
> >
> >Vítej na palubě. Přesně jak napsal(a) stařenka. V Python 3 se print() stal
> >funkcí, dřív

Re: [python] O řádek níž (Roman)

2013-06-27 Tema obsahu Petr Messner
Dne 27. června 2013 13:38 Roman Frajt  napsal(a):

> Nanistaloval jsem Anacondu, do cmd.exe jsem úspěšně zadal conda update
> conda a conda update ipython, ale teď vlastně nevím, jestli už to teda mám
> nebo nemám nainstalované, ve startu mám k dispozici položku - IP iPython
> (2.7), když na to kliknu objeví se příkazové řádky podobně jako v DOS a to
> je vše...
>
>
To asi bude správně, IPython má řádkové rozhraní. Měl bys vidět něco zhruba
takového:

http://ipython.org/ipython-doc/rel-0.11/_images/ipython_shell.png

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

Re: [python] Článek o brythonu

2013-03-05 Tema obsahu Petr Messner
Když se podíváš na assembler, který leze z překladače, taky ti může připadat 
jako od někoho, kdo assembler nikdy neviděl. A přesto takové programy vesele 
používáš :)

Petr Messner

5. 3. 2013 v 15:46, "azurIt" :

> Ty si JavaScript este nikdy nevidel? :) *Normalny* ekvivalent k tomu Python 
> kodu by bolo nieco taketo:
> 
> function foo(bar, baz) {
>return str(bar) + str(baz);
> }
> 
> 
> Tak si to porovnaj s tym, co vygeneroval brython.
> 
> azur
> 
> 
> __
>> Od: "Bystroushaak" 
>> Komu: 
>> Dátum: 05.03.2013 15:35
>> Predmet: Re: [python] Článek o brythonu
>> 
>> Aha. Proč?
>> 
>> Dne 5.3.2013 13:43, azurIt napsal(a):
>>> Ten priklad je dost vtipny :) ak to ma generovat takyto kod, tak to naozaj 
>>> nie je pouzitelne.
>>> 
>>> azur
>>> 
>>> 
>>> __
>>>> Od: "Bystroushaak" 
>>>> Komu: 
>>>> Dátum: 05.03.2013 13:35
>>>> Predmet: [python] Článek o brythonu
>>>> 
>>>> Jedná se o python běžící v prohlížeči, který je dynamicky za běhu
>>>> transformován do JavaScriptu, jehož engine má pak na starosti interpretaci.
>>>> 
>>>> http://www.abclinuxu.cz/blog/bystroushaak/2013/1/brython
>>>> ___
>>>> 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] regexpové \t

2013-03-02 Tema obsahu Petr Messner
Má to být takhle?

>>> re.sub(r"\d+\t", "595tab", "577\t577 577")
'595tab577 577'

Ten dolar ($) označuje konec řetězce, takže jakýkoliv regulární výraz
obsahující dolar jinde než na konci nemá moc velký smysl.

PM


2013/3/2 Roman Beno 

> Dobrý deň,
>
> vedeli by ste niekto poradiť ako vyjadrím \t ako súčasť retazca v
> regulárnom retazci?
>
> dajme tomu že mám retazec: "577\t577 577"
> a ja chcem z neho vyjmut to "577\t" a nahradit niečim iným,
>
> lenže mi nefunguje zapasovanie ,
>
> retazec = "577\t577 577"
> re.sub("$/d+[\t]", "595tab", retazec)
>
> čiže k žiadnej náhrade neprichádza.
> Ďakujem za odpoved
>
> ___
> 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] regexpové \t

2013-03-02 Tema obsahu Petr Messner
Jen pro jistotu - \t je tabulator, nebo zpetne lomitko a za ním malé písmeno t?

Petr Messner

2. 3. 2013 v 12:16, Roman Beno :

> Dobrý deň,
> 
> vedeli by ste niekto poradiť ako vyjadrím \t ako súčasť retazca v regulárnom 
> retazci?
> 
> dajme tomu že mám retazec: "577\t577 577"
> a ja chcem z neho vyjmut to "577\t" a nahradit niečim iným,
> 
> lenže mi nefunguje zapasovanie ,
> 
> retazec = "577\t577 577"
> re.sub("$/d+[\t]", "595tab", retazec)
> 
> čiže k žiadnej náhrade neprichádza.
> Ďakujem za odpoved
> ___
> 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] smazání větve xml v celém dokumentu

2013-01-21 Tema obsahu Petr Messner
Pokud jde o to, že se ten xml dokument nevejde do paměti, tak řešením je SAX: 

http://lxml.de/sax.html

Jestli to tedy neni zrovna to procházení, které nechceš :)

Petr Messner

21. 1. 2013 v 11:18, Ondrej Beranek :

> mám rozsáhlý a tučný (několik gb) XML dokument, existuje nějaká cesta jak 
> smazat větev v celém dokumentu aniž bych to musel procházet ?
> 
> struktura "něco jako" (ve skutečnosti je velmi zanořená)
> 
> 
> 
> ...
> 
> 1234
> 456
> 
> 
> 
> 
> tohle: 
> http://stackoverflow.com/questions/3359151/how-can-i-remove-all-elements-matching-an-xpath-in-python-using-lxml
>  mi nefunguje.
> 
> O.
> ___
> 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] Podivné: MySQLdb pod Windows 7 nezapisuje do tabulky

2012-12-08 Tema obsahu Petr Messner
Děláte po zápisu commit?

Petr Messner

9. 12. 2012 v 8:07, "Ing. Vladislav Ludík" :

> Zdravím všechny.
> 
> Narazil jsem na podivné chování modulu MySQLdb.
> 
> Nainstaloval jsem ComplexWebServer.1.4.14.msi na Windows 7 - x64.
> 
> V počítači je Python 2.7.3.msi + modul MySQL-python-1.2.3.win32-py2.7.exe
> 
> Problém:
> 
> Pokud čtu data z tabulky z localhost je vše v pořádku.
> Pokud ale zapisuju data do téže tabulky na localhost, data se nezapíšou, ale 
> co je podivné, index v tabulce se incrementuje.
> Chyby syntaxe a jiné chyby jsou ověřením vyloučené.
> Přitom SQL příkaz pro výmaz dat tabulky projde a data vymaže.
> Pokud zapisuju data do tabulky na jiném serveru (s velmi starou databází), 
> data se zapíšou.
> Pokud použiju PHP skript, data se na localhost zapisují.
> Zkoušel jsem jiné moduly, jiné instalace, mazání příznaku read only v 
> adresářích, kam mysql píše, spouštět jako správce a všude se to chová stejně.
> I na Windows XP 32bit a VirtualBox se stejnými moduly.
> Se zápisem dat do tabulek instalovaných na jiných serverech s instalací 
> modulu MySQLdb (debian) tento problém neexistuje.
> 
> Jsem z toho dost smutný. Poradí mi někdo ?
> 
> 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] hook na imap

2012-10-14 Tema obsahu Petr Messner
Třeba Runit nebo Daemontools.

Petr Messner

15. 10. 2012 v 0:19, Visgean Skeloru :

> Mhmm, ok to zní už hodně složitě... radši to vydržím s tím cronem. I když 
> cron je asi nevhodný tady lepší by bylo spustit to jedno a používat sleep - 
> neznáte nějaký použitelný postup na ověřování a případné spouštění scriptu 
> (jestliže neběží tak ho spustit) na linuxu?
> 
> 2012/10/14 Petr Messner 
> Na netu se válejí návody, jak na iPhonech používat push notifikace s
> GMailem - prý ho stačí přidat jako Exchange účet. Takže zřejmě GMail
> nějak podporuje Exchange ActiveSync.
> 
> PM
> 
> Dne 14. října 2012 0:37 Visgean Skeloru  napsal(a):
> > nn, je to gmail account...
> >
> >
> > 2012/10/13 Petr Messner 
> >>
> >> Ahoj,
> >>
> >> máš přístup ke konfiguraci mail (SMTP) serveru, který tyto maily přijímá?
> >> Možná by se tam dalo nastavit spouštění něčeho. Nebo nastavit přesměrování
> >> na vlastní SMTP server v Pythonu :)
> >>
> >> Petr Messner
> >>
> >> 13. 10. 2012 v 18:09, Visgean Skeloru :
> >>
> >> Ahoj, píšu script co zpracovává emailové zprávy a chtěl bych se zeptat
> >> jestli neznáte něco na hooknutí se na imapový učet - takhle to musím
> >> periodicky spouštět cronem což je neefektivní... Potřebuju prostě něco co 
> >> by
> >> se připojilo a čekalo na maily... V současnosti používám knihovnu imaplib,
> >> nic co by to umělo jsem nenašel...
> >> Díky.
> >>
> >> --
> >> GPG pub key | github/visgean | jabber
> >>
> >> ___
> >> 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
> >
> >
> >
> >
> > --
> > GPG pub key | github/visgean | jabber
> >
> >
> > ___
> > 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
> 
> 
> 
> -- 
> GPG pub key | github/visgean | jabber
> 
> ___
> 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] hook na imap

2012-10-14 Tema obsahu Petr Messner
Na netu se válejí návody, jak na iPhonech používat push notifikace s
GMailem - prý ho stačí přidat jako Exchange účet. Takže zřejmě GMail
nějak podporuje Exchange ActiveSync.

PM

Dne 14. října 2012 0:37 Visgean Skeloru  napsal(a):
> nn, je to gmail account...
>
>
> 2012/10/13 Petr Messner 
>>
>> Ahoj,
>>
>> máš přístup ke konfiguraci mail (SMTP) serveru, který tyto maily přijímá?
>> Možná by se tam dalo nastavit spouštění něčeho. Nebo nastavit přesměrování
>> na vlastní SMTP server v Pythonu :)
>>
>> Petr Messner
>>
>> 13. 10. 2012 v 18:09, Visgean Skeloru :
>>
>> Ahoj, píšu script co zpracovává emailové zprávy a chtěl bych se zeptat
>> jestli neznáte něco na hooknutí se na imapový učet - takhle to musím
>> periodicky spouštět cronem což je neefektivní... Potřebuju prostě něco co by
>> se připojilo a čekalo na maily... V současnosti používám knihovnu imaplib,
>> nic co by to umělo jsem nenašel...
>> Díky.
>>
>> --
>> GPG pub key | github/visgean | jabber
>>
>> ___
>> 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
>
>
>
>
> --
> GPG pub key | github/visgean | jabber
>
>
> ___
> 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] hook na imap

2012-10-13 Tema obsahu Petr Messner
Ahoj,

máš přístup ke konfiguraci mail (SMTP) serveru, který tyto maily přijímá? Možná 
by se tam dalo nastavit spouštění něčeho. Nebo nastavit přesměrování na vlastní 
SMTP server v Pythonu :)

Petr Messner

13. 10. 2012 v 18:09, Visgean Skeloru :

> Ahoj, píšu script co zpracovává emailové zprávy a chtěl bych se zeptat jestli 
> neznáte něco na hooknutí se na imapový učet - takhle to musím periodicky 
> spouštět cronem což je neefektivní... Potřebuju prostě něco co by se 
> připojilo a čekalo na maily... V současnosti používám knihovnu imaplib, nic 
> co by to umělo jsem nenašel... 
> Díky. 
> 
> -- 
> GPG pub key | github/visgean | jabber
> 
> ___
> 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

  1   2   >