Re: [Python] Lanciare script da altro script
2015-03-06 17:23 GMT+00:00 Enrico Bianchi enrico.bian...@ymail.com: On Tuesday, March 03, 2015 03:28:15 PM enrico franchi wrote: (reinvio per scazzi con client email) 3. e' qualcosa che fa solo I/O bound; per il CPU bound devi sempre andare vecchia maniera. multiprocessing o incrociare le dita con i thread. https://docs.python.org/3/library/concurrent.futures.html ? Si, leggila la pagina che linki pero'... :) Quella e' una API costruita su... multiprocessing oppure threading. In altre parole, siamo punto a capo. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
On Tuesday, March 03, 2015 03:28:15 PM enrico franchi wrote: (reinvio per scazzi con client email) 3. e' qualcosa che fa solo I/O bound; per il CPU bound devi sempre andare vecchia maniera. multiprocessing o incrociare le dita con i thread. https://docs.python.org/3/library/concurrent.futures.html ? Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
posso chiedere ad Enrico quale/quali soluzioni avrebbe individuato per risolvere i problemi che ci ha descritto? ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
On Mon, Mar 2, 2015 at 4:49 PM, Enrico Bianchi enrico.bian...@ymail.com wrote: On 03/02/2015 03:39 PM, enrico franchi wrote: problema principale e' che Python manca di una buona primitiva di concorrenza universale. https://docs.python.org/3/library/asyncio.html ? 1. Python 3; che comporta 1b. E' in giro da poco per essere una primitiva universale (ovvero, la maggior parte della roba la fuori non lo usa) 1c. C'e' un backport... che e' sempre una libreria esterna e recente; ovvero il mondo Python 2 ancora non ci si basa. 2. Ci sono in giro diverse opinioni sul fatto che sia lento; un po' me lo aspettavo, visto che e' un sacco di pure python con una bella interfaccina carina che fa un sacco di cose per te 3. e' qualcosa che fa solo I/O bound; per il CPU bound devi sempre andare vecchia maniera. multiprocessing o incrociare le dita con i thread. Poi si... e' molto carino. Niente da dire. Ma -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-02 17:36 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com: Il problema lo hai purtroppo in quasi tutti i linguaggi. Scrivere un programma scalabile senza portarsi dietro un framework è un miraggio. Non sono d'accordo. O meglio, il problema non e' avere un framework, il problema e' che e' seccante scrivere una libreria che assuma un framework. Ora supponi un pattern molto semplice per un servizio web (di cui stai pensando il client). Fai una chiamata che ricerca determinate entita' con un pattern. Queste entita' hanno veramente un botto di proprieta' per cui la chiamata che fai ti ritorna diciamo un identificatore (o un subset delle proprieta'). Ma tu vuoi la lista con tutte le proprieta'. Quindi per ciascuno di questi elementi devi fare una chiamata aggiuntiva. Ora possiamo discutere sul fatto che il servizio non dovrebbe essere scritto cosi', dovrebbe usare una API diversa o quello che vuoi... ma non e' poco comune trovare roba che ha grosso modo questo pattern. E tu vuoi mappare sta roba nel mondo Python. Quindi magari ti trovi per una chiamata Python a fare diciamo un centinaio di chiamate HTTP. O magari meno... il servizio ha qualche forma di paginazione... ma non importa ora. Ecco... una libreria per farti il client di suddetto coso e' parecchio complicata: o fai un'API python in cui il modello di concorrenza ti vola da di fuori, oppure scegli di appoggiarti a qualcosa (threads, processi, gevent -- non ci vedo troppo bene twisted perr questo --). La stessa cosa in Go non ha questo problema. Non solo... manco in Java (o chi vive su Java). Si fa tranquillamente con dei Futures belli e pronti nella libreria standard. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il problema principale e' che Python manca di una buona primitiva di concorrenza universale. I Thread funzionano male in modo specifico in Python, e in generale sono una primitiva molto old-school. Tanto che per dire in Java hanno costruito tutto un mondo per cui i thread si riescono a vedere poco. I processi funzionano meglio sotto molti punti di vista, ma anche li... gevent e' un framework che per molti versi ti costringe a fare quello che fai con i framework. Twisted pure lui e' un framework. Quindi... sto scrivendo uno script di utility? Posso usare facilmente gevent (perche' ho completo controllo dello script: e' un processo unix che creo io e che fa cose). Ma posso usare anche multiprocessing senza grossi problemi. Ecco, ora voglio estrarre in una libreria per rendere tutto piu' generale. Bene... che faccio? Dipendo da gevent? E la libreria andra' a fare a cazzotti con qualcun altro (tipo grequests fa monkey patching automatico del mondo e tanti saluti). Non posso farlo. Ok, allora uso multiprocessing. Hei, ma siamo sicuri che voglio che chi chiama le mie funzioni si trovi sotto il naso un set di workers? Ci ho avuto incubi di memoria per sta roba. Ma dai, uso i threads... ma sono sicuro di essere I/O bound e non CPU bound. Si... hei, ma quell'altra libreria che uso usa multiprocessing, quindi sono a rischio di deadlock se faccio cose anche banali tipo loggare. Ecco... potrei scrivere un adapter che mi permette di fare pluggare il modello di concorrenza dal chiamante. Non e' *troppo* doloroso. Se avessi tempo potrei anche farlo una volta per tutte. Poi certo... ci vuole un qualche tipo di sistema di dependency injection perche' non voglio assolutamente che due chiamanti facciano cose non compatibili... bene. Oppure uso celery. Quindi per la cosa piu' deficiente che devo fare mi trovo fra le palle un sistema di code, celery, i worker. E poi anche li, saro' io, ma celery ha un mucchio di problemi per i fatti suoi. questo della concorrenza universale è un problema però come ha scritto #Enrico Bianchi asyncio è stato introdotto nella libreria standard e alcuni punti che hai elencato vanno a cadere. Certo scrivere codice asincrono porta dietro i suoi problemi. Io poi non sono un grande esperto di linguaggi di programmazione ma da quel poco che ho visto python no è l'unico ad avere questo problema ... a meno che il linguaggio non sia stato scritto con l'idea della concorrenza. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-02 11:54 GMT+00:00 Balan Victor balan.vict...@gmail.com: Diro' di piu'... se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Ci sono troppe cose con vanno come dico io. Cioè? Il problema principale e' che Python manca di una buona primitiva di concorrenza universale. I Thread funzionano male in modo specifico in Python, e in generale sono una primitiva molto old-school. Tanto che per dire in Java hanno costruito tutto un mondo per cui i thread si riescono a vedere poco. I processi funzionano meglio sotto molti punti di vista, ma anche li... gevent e' un framework che per molti versi ti costringe a fare quello che fai con i framework. Twisted pure lui e' un framework. Quindi... sto scrivendo uno script di utility? Posso usare facilmente gevent (perche' ho completo controllo dello script: e' un processo unix che creo io e che fa cose). Ma posso usare anche multiprocessing senza grossi problemi. Ecco, ora voglio estrarre in una libreria per rendere tutto piu' generale. Bene... che faccio? Dipendo da gevent? E la libreria andra' a fare a cazzotti con qualcun altro (tipo grequests fa monkey patching automatico del mondo e tanti saluti). Non posso farlo. Ok, allora uso multiprocessing. Hei, ma siamo sicuri che voglio che chi chiama le mie funzioni si trovi sotto il naso un set di workers? Ci ho avuto incubi di memoria per sta roba. Ma dai, uso i threads... ma sono sicuro di essere I/O bound e non CPU bound. Si... hei, ma quell'altra libreria che uso usa multiprocessing, quindi sono a rischio di deadlock se faccio cose anche banali tipo loggare. Ecco... potrei scrivere un adapter che mi permette di fare pluggare il modello di concorrenza dal chiamante. Non e' *troppo* doloroso. Se avessi tempo potrei anche farlo una volta per tutte. Poi certo... ci vuole un qualche tipo di sistema di dependency injection perche' non voglio assolutamente che due chiamanti facciano cose non compatibili... bene. Oppure uso celery. Quindi per la cosa piu' deficiente che devo fare mi trovo fra le palle un sistema di code, celery, i worker. E poi anche li, saro' io, ma celery ha un mucchio di problemi per i fatti suoi. E tutto questo per fare una cosa cretina come chiamare un servizio rest da un'app django, non stiamo parlando di rocket science. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Diro' di piu'... se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Ci sono troppe cose con vanno come dico io. Cioè? ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
enrico franchi wrote: se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Già fatto, e neanche la web UI leggera... -- Nicola 'tekNico' Larosa http://www.tekNico.net/ If you are an expert in the intricacies of C++, please consider this knowledge a kind of martial art - something a real master never uses. - Yossi Kreinin, C++ FQA Lite, 2009 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il giorno 2 marzo 2015 12:31, enrico franchi enrico.fran...@gmail.com ha scritto: Diro' di piu'... se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Ci sono troppe cose con vanno come dico io. Uhhh, come mai? ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-01 16:21 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com: 2015-03-01 16:08 GMT+01:00 enrico franchi enrico.fran...@gmail.com: Io personalmente ho smesso di fare tutto in Python ERETICO! Finirai su rogo ;) Sono immune ;) Diro' di piu'... se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Ci sono troppe cose con vanno come dico io. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
On 03/02/2015 03:39 PM, enrico franchi wrote: problema principale e' che Python manca di una buona primitiva di concorrenza universale. https://docs.python.org/3/library/asyncio.html ? Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-02 15:39 GMT+01:00 enrico franchi enrico.fran...@gmail.com: 2015-03-02 11:54 GMT+00:00 Balan Victor balan.vict...@gmail.com: Diro' di piu'... se le cose continuano ad andare in questa direzione, smettero' di fare Python per qualcosa che e' piu' di uno script o al limite una web UI leggera. Ci sono troppe cose con vanno come dico io. Cioè? Il problema principale e' che Python manca di una buona primitiva di concorrenza universale. I Thread funzionano male in modo specifico in Python, e in generale sono una primitiva molto old-school. Tanto che per dire in Java hanno costruito tutto un mondo per cui i thread si riescono a vedere poco. I processi funzionano meglio sotto molti punti di vista, ma anche li... gevent e' un framework che per molti versi ti costringe a fare quello che fai con i framework. Twisted pure lui e' un framework. Il problema lo hai purtroppo in quasi tutti i linguaggi. Scrivere un programma scalabile senza portarsi dietro un framework è un miraggio. E progettare un linguaggio in cui questo sia possibile pone dei vincoli di interoperabilità con il resto del mondo. [...] Ciao Manlio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il giorno 1 marzo 2015 01:25, enrico franchi enrico.fran...@gmail.com ha scritto: Io sinceramente per lanciare 4 programmi in stecca scriverei 4 righe di bash. O meglio, 5. C'e' anche lo shebang. Grazie Enrico, certo è una soluzione ed anche semplice, ma lo script lanciante fa anche altre cosine quindi mi è più comodo usare Python. Grazie comunque. Daniele ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-01 9:23 GMT+00:00 Daniele Palmese pal...@gmail.com: Grazie Enrico, certo è una soluzione ed anche semplice, ma lo script lanciante fa anche altre cosine quindi mi è più comodo usare Python. Non conosco i dettagli, ovviamente. Io personalmente ho smesso di fare tutto in Python. Pero' appunto senza sapere cosa sia queste altre cose non posso consigliartelo. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-03-01 16:08 GMT+01:00 enrico franchi enrico.fran...@gmail.com: Io personalmente ho smesso di fare tutto in Python ERETICO! Finirai su rogo ;) Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il giorno 1 marzo 2015 16:08, enrico franchi enrico.fran...@gmail.com ha scritto: Io personalmente ho smesso di fare tutto in Python. Ultimamente mi diverto con ipython e bash, mi stano dando grandi soddisfazioni Giusto per fare un piccolo esempio (va rinominato in .pyc): files=!ls for file_ in files: !echo {file_} Non testato Alessandro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Daniele Palmese pal...@gmail.com writes: Ciao a tutti, devo lanciare una serie di script invocandoli da un solo script, in modo da poterli serializzare con poca difficoltà. Googolando ho trovato che la soluzione più gettonata sembra essere os.system(python script_da_lanciare.py), ed infatti ha funzionato senza grossi problemi, anche se mi ha lasciato un senso di vuoto dentro. Solo per curiosità, usereste anche voi una soluzione del genere o che altro? A me pice gnu parallel perché si usa come xargs. Imprecisa domanda, imprecisa risposta -- µ. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Lanciare script da altro script
Ciao a tutti, devo lanciare una serie di script invocandoli da un solo script, in modo da poterli serializzare con poca difficoltà. Googolando ho trovato che la soluzione più gettonata sembra essere os.system(python script_da_lanciare.py), ed infatti ha funzionato senza grossi problemi, anche se mi ha lasciato un senso di vuoto dentro. Solo per curiosità, usereste anche voi una soluzione del genere o che altro? Grazie e buon weekend a tutti. Daniele ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il giorno 28 febbraio 2015 13:07, Balan Victor balan.vict...@gmail.com ha scritto: Usa il modulo subprocess o multiprocessing. Uhhh giusto, a volte basterebbe semplicemente attaccare il cervello. Grazie. Daniele ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
Il 28/feb/2015 13:00 Daniele Palmese pal...@gmail.com ha scritto: Ciao a tutti, devo lanciare una serie di script invocandoli da un solo script, in modo da poterli serializzare con poca difficoltà. Googolando ho trovato che la soluzione più gettonata sembra essere os.system(python script_da_lanciare.py), ed infatti ha funzionato senza grossi problemi, anche se mi ha lasciato un senso di vuoto dentro. Solo per curiosità, usereste anche voi una soluzione del genere o che altro? Usa il modulo subprocess o multiprocessing. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Lanciare script da altro script
2015-02-28 12:00 GMT+00:00 Daniele Palmese pal...@gmail.com: Solo per curiosità, usereste anche voi una soluzione del genere o che altro? Io sinceramente per lanciare 4 programmi in stecca scriverei 4 righe di bash. O meglio, 5. C'e' anche lo shebang. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python