Re: [Python] Lanciare script da altro script

2015-03-09 Per discussione enrico franchi
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

2015-03-06 Per discussione Enrico Bianchi

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

2015-03-03 Per discussione Marco Ippolito
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

2015-03-03 Per discussione enrico franchi
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-03 Per discussione enrico franchi
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

2015-03-02 Per discussione Balan Victor

 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 Per discussione enrico franchi
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

2015-03-02 Per discussione Balan Victor
 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

2015-03-02 Per discussione Nicola Larosa
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

2015-03-02 Per discussione Daniele Palmese
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-02 Per discussione enrico franchi
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

2015-03-02 Per discussione Enrico Bianchi

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 Per discussione Manlio Perillo
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

2015-03-01 Per discussione Daniele Palmese
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 Per discussione enrico franchi
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 Per discussione Carlos Catucci
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

2015-03-01 Per discussione Alessandro
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

2015-02-28 Per discussione Michele Orru`
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

2015-02-28 Per discussione Daniele Palmese
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

2015-02-28 Per discussione Daniele Palmese
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

2015-02-28 Per discussione Balan Victor
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 Per discussione enrico franchi
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