Re: [Python] Pordenone

2015-11-20 Per discussione Marco Fochesato
Il 20/Nov/2015 09:04, "Matteo Boscolo"  ha
scritto:
>
> io sono vicino a venezia.. (cavallino-Treporti) :
> Popolazione Residente
> 13.517 (M 6.612, F 6.905)
> Densità per Kmq: 301,2
> Superficie: 44,87 Kmq
>
> :)))
>
>
> Il 20/11/2015 08:47, Marco Beri ha scritto:
>>
>>
>> Il 19 nov 2015 11:36 PM, "enrico franchi"  ha
scritto:
>> >
>> > 2015-11-19 17:32 GMT+00:00 piergiorgio pancino :
>> >>
>> >> c'è nessuno che abita in zona Pordenone?
>> >
>> > circa 50 mila persone in citta', 300 mila nella provincia.
>>
>> Ho cercato su Wikipedia per dare la stessa risposta ma poi mi sono detto
"Marco, non fare il solito cazzone".
>>
>> 
>>
>> Ciao.
>> Marco.

Ha scatenato l'inferno.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why should I care about the netiquette? [Was: Re: VI PREGO AIUTATEMI!!!! Problema con Pyahton]

2015-06-20 Per discussione Marco Fochesato
 Anche a me spiacerebbe.


Spiacerebbe anche a me!
Pur essendo stato piú volte cazziato in passato!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Arduino

2015-06-11 Per discussione Marco Fochesato
Il giorno 11 giugno 2015 22:31, Enrico Bianchi enrico.bian...@ymail.com
ha scritto:

 On 06/11/2015 10:14 PM, Marco Fochesato wrote:


 Esiste Micro-Python che gira sulla Pyboard!

  Ovvero? Tieni presente che stai parlando con uno che di queste cose non
 ne sa praticamente nulla (di solito ho fatto applicativi che leggevano i
 dati da sensori via ethernet, ma mai il contrario)


Io sono sicuramento meno esperto di te.
In parole povere sta Pyboard ha nella flash un firmware con pre-installata
una versione miniaturizzata di Python.
E' un interprete che traduce in realtime il codice ad alto livello di
Python e fa lavorare la board in C++.
Spero di non aver detto qualche cavolata.

Io ho lavoricchiato su Arduino, ma ho sofferto di varie allergie con quel
C++ li.. son viziato.
Ora sulla Pyboard ci ho appena messo le mani. Spero di divertirmi.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Arduino

2015-06-11 Per discussione Marco Fochesato
Esiste Micro-Python che gira sulla Pyboard!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Presentazione

2015-06-04 Per discussione Marco Fochesato
Il giorno 4 giugno 2015 22:21, Matteo Scarpa matteoscarp...@gmail.com ha
scritto:

 Buona sera o buon giorno!
 Mi sono appena iscritto a questa mail list per cui mi sembra giusto
 presentarmi.

 Sono uno studente di informatica di Venezia di 23 anni appassionato di
 python. Ho iniziato a usarlo per un corso e mi ha preso talmente tanto che
 che scrivo solo in Python. Spero di essere utile e dare una mano in questa
 community


Ciao Matteo,
benvenuto!
-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] non rompetemi più le palle in chat...

2015-06-04 Per discussione Marco Fochesato
Grazie anche da parte mia.
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Micro Python

2015-05-23 Per discussione Marco Fochesato
Il giorno 23 maggio 2015 10:37, Antonio Spadaro antoniospadar...@gmail.com
ha scritto:

 Il vantaggio è nel chip, supporta molti più pin del Raspberry Pi anche di
 vari tipi, ma non ha una shell, ha solo l'interprete Python

 Il giorno 23 maggio 2015 10:26, Francesco Maida francesco.ma...@gmail.com
  ha scritto:

 Scusate l'ignoranza,
 ma che vantaggi ha questa cosa rispetto a.. che ne so... usare un
 raspberry pi con Python in versione standard ?




 Occhio al top-quoting, Antonio... che qui ti fustigano! :-)
La mia speranza è che ci sia anche qualche pin analogico, al quale
collegare un sensore e gestire direttamente i valori con Python. La Raspy
li ha tutti digitali, i pin...

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Micro Python

2015-05-22 Per discussione Marco Fochesato
Ciao a tutti!
Volevo segnalare a chi interessa:

https://micropython.org

Ne ho ordinata una e la sto aspettando con ansia.

Buon weekend!

--
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python vs Java

2014-12-28 Per discussione Marco Fochesato
 Oh, questo mi interessa... ma *davvero* uno che non ha mai programmato in
 10 giorni tira su roba sensata in Django?
 Perche' capisco il sito della fattoria di nonna papera, ma io penso al
 numero di cose elementari che vanno conosciute anche per un sito semplice e
 non mi sembra sia roba che si fa in 10 giorni a prescindere dal linguaggio
 di programmazione. A me sembra che se su tutto questo inserisci imparare un
 linguaggio, imparare a programmare e imparare un framework (con i vari
 annessi, tipo due o tre cose sceme su db e oop) altro che 10 giorni. Direi
 che forse si comincia a ragionare con 6 mesi se il tipo e' sveglio.


Cavolo...
mi ero illuso di riuscire ad usare Django qui sotto le ferie...

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Lancio di stampe con Python

2014-12-09 Per discussione Marco Fochesato
Ciao a tutti,
non riesco a capire dove sbaglio sinceramente.

import subprocess
subprocess.call([/usr/bin/lpr  -P+stampante, nomefile)

L'ambiente in cui lavoro è Linux.
Se lancio il comando da terminale, con ovviamente al posto delle variabili
il nome della stampante e il nome del file, riesco a lanciare la stampa.
Se lo lancio con il comando sopra descritto, mi esce un errore:

OSError: [Errno 2] File o directory non esistente

Se invece lancio il comando senza la stampante, la stampa mi riesce sulla
stampante predefinita di sistema.


Poi, se un domani volessi lanciare le stampe anche su windows, funzionerà?
Non credo...

Avete qualche suggerimento in merito?

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Lancio di stampe con Python

2014-12-09 Per discussione Marco Fochesato

 Probabilmente l'errore e` che se passi i comandi come una stringa devi
 anche usare shell=True. Questo ha degli svantaggi/pericoli ben spiegati
 nella documentazione. Il modo piu` sicuro e spesso piu` pratico e` di
 passare gli argomenti come una lista: in questo caso il primo elemento
 dev'essere l'eseguibile, quindi qualcosa tipo

 subprocess.call([/usr/bin/lpr, -P + stampante, nomefile])


Grandissimo Daniele, così funziona!

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Applicazione WEB con Python e Postgresql

2014-10-05 Per discussione Marco Fochesato

 Io di solito uso un approccio misto, ovvero in applicazioni dove mi serve
gestire uno stato uso un oggetto, altrimenti vado di funzioni e/o
sottofunzioni



Io credo che per approcciarmi a Django, la devo imparare questa benedetta
programmazione ad oggetti.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Applicazione WEB con Python e Postgresql

2014-09-23 Per discussione Marco Fochesato
Ciao Lista,
avrei bisogno di un consiglio.
Ho il mio bel database Postgresql al quale mi interfaccio con Libreoffice e
con qualche piccola applicazione creata con Python.

Viste le varie esigenze, sto pensando di mettere in piedi un server web e
creare una o più applicazioni web che vadano ad interfacciarsi al database.
Sono a digiuno completo di linguaggi per la creazioni di siti web.
Adoro Python, e mi son avvicinato al framework Django. Ho acquistato il
libro di Marco Beri e sto completando tutto il tutorial.
E' la strada giusta?

Lo chiedo perchè vedo parlare in rete di WSGI...
poi così ad un primo approccio con Django, mi son trovato un po' stretto...
ho la sensazione di non poter lavorare su un database già costruito.

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Applicazione WEB con Python e Postgresql

2014-09-23 Per discussione Marco Fochesato
Marco, si ho chiavi primarie che contengono campi multipli (e che belle che
sono...).

Daniele Varrazzo, è sempre un piacere leggerti. Grazie mille.
Proseguo allora.

Il giorno 23 settembre 2014 16:58, Daniele Varrazzo p...@develer.com ha
scritto:

 On 2014-09-23 15:36, Marco Fochesato wrote:

 Ciao Lista,
 avrei bisogno di un consiglio.
 Ho il mio bel database Postgresql al quale mi interfaccio con Libreoffice
 e
 con qualche piccola applicazione creata con Python.

 Viste le varie esigenze, sto pensando di mettere in piedi un server web e
 creare una o più applicazioni web che vadano ad interfacciarsi al
 database.
 Sono a digiuno completo di linguaggi per la creazioni di siti web.
 Adoro Python, e mi son avvicinato al framework Django. Ho acquistato il
 libro di Marco Beri e sto completando tutto il tutorial.
 E' la strada giusta?

 Lo chiedo perchè vedo parlare in rete di WSGI...
 poi così ad un primo approccio con Django, mi son trovato un po'
 stretto...
 ho la sensazione di non poter lavorare su un database già costruito.


 Si', sei sulla strada giusta. WSGI e' un passo sotto django: serve
 (grossomodo) a collegare un application server (quale e' django, o sono
 flask/bottle) con un web server (come apache o nginx). Tu tipicamente
 userai un app server e sarai un utente wsgi senza neanche accorgertene.

 Per quanto riguarda il suo ORM, ci sono diverse cose che trovo *molto*
 opinabili. Comunque non e' un grosso problema ne' farlo lavorare su tabelle
 che hai costruito in precedenza (costruendo i modelli sulle tabelle gia'
 definite, senza che crei quelle stupidissime fkey deferrable initially
 deferred che ce li strozzerei) ne' evitare a pie' pari l'intero layer
 dell'orm, evitando di definire modelli e usando comandi sql (from django.db
 import connection, cur = connection.cursor(), ...). In questo modo sfrutti
 es. la sua configurazione, la gestione delle transazioni legata alle pagine
 ecc. ma usi il database al massimo della potenza.

 ...e quando dico non e' un grosso problema non usare le tabelle
 autogenerate oppure fare query a mano, intendo lo faccio sempre: mai
 scritto un programma che usasse la sua autogenerazione o le migrations
 (ogni volta che ne vedo l'sql inorridisco) e appena le cose diventano un
 pelo meno dirette trovo molto piu' semplice scrivere una query invece di
 ricordarmi di usare data__lte, come si fa l'eagerload... ma forse sono di
 parte.


 -- Daniele

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Applicazione WEB con Python e Postgresql

2014-09-23 Per discussione Marco Fochesato
Va bene!
Si infatti, per sentirmi stretto, parlavo di quello: perchè deve esserci
per forza na colonna id??

Poi, io la programmazione ad oggetti non l'ho ancora digerita. Vado ancora
a funzioni.
So che è come andare in Ferrari usando solo la prima marcia... lo sento. Ma
non l'ho ancora imparato.
O meglio, non ne ho avuto ancora l'esigenza...

Credo che inizierò proprio qui.
E credo anche che vi romperò spesso le scatole.



Il giorno 23 settembre 2014 17:25, Daniele Varrazzo p...@develer.com ha
scritto:

 On 2014-09-23 16:14, Marco Fochesato wrote:

 Marco, si ho chiavi primarie che contengono campi multipli (e che belle
 che
 sono...).


 Puoi comunque definire i tuoi oggetti dichiarando i campi che hanno,
 usando primary_key=True per uno qualunque di loro (altrimenti Django
 assume che c'e' un campo id che fa da pkey) ed evitando di usare il suo sql
 per la generazione delle tabelle. Non testato (e' da un po' che non scrivo
 django):

 class MiaCosa(models.Model):
 key1 = models.IntegerField(primary_key=True)
 key2 = models.IntegerField() # parte della pkey ma django non lo
 sa.

 class AltraCosa(models.Model):
 quellacosa = models.ForeignKey(MiaCosa, db_column=miacosa_key1)
 key2 = models.IntegerField(db_column=miacosa_key2) # parte
 della fkey ma django non lo sa.

 Ovviamente tu lo sai che la chiave e' (key1, key2) e userai
 MiaCosa.objects.get(key1=a, key2=b) per prendere un solo oggetto. Hai delle
 limitazioni perche' la fkey non e' definita bene, tipo non potrai usare
 AltraCosa.objects.filter(quellacosa=miacosa). Ma il resto di django
 funziona bene lo stesso. Lo devi solo prendere un po' per il culo :)



 -- Daniele
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Applicazione WEB con Python e Postgresql

2014-09-23 Per discussione Marco Fochesato
Si, mi sono iscritto due giorni fa. Grazie.

Il giorno 23 settembre 2014 17:35, Marco De Paoli depao...@gmail.com ha
scritto:

 Il 23 settembre 2014 17:32, Marco Fochesato marco...@gmail.com ha
 scritto:
 
 
  Credo che inizierò proprio qui.
  E credo anche che vi romperò spesso le scatole.

 sappi che se vuoi, oltre a questa, c'è anche una lista italiana
 specifica per django
 django...@googlegroups.com


 Marco
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Applicazione WEB con Python e Postgresql

2014-09-23 Per discussione Marco Fochesato
2014-09-23 19:19 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:


 2014-09-23 17:32 GMT+02:00 Marco Fochesato marco...@gmail.com:
 
  Va bene!
  Si infatti, per sentirmi stretto, parlavo di quello: perchè deve
 esserci per forza na colonna id??

 1 - It's faster. A JOIN on an integer is much quicker than a JOIN on a
 string field or combination of fields. It's more efficient to compare
 integers than strings.

 2 - It's simpler. It's much easier to map relations based on a single
 numeric field than on a combination of other fields of varying data types.

 3 - It's data-independent. If you match on the ID you don't need to worry
 about the relation changing. If you match on a name, what do you do if
 their name changes (i.e. marriage)? If you match on an address, what if
 someone moves?

 4 - It's more efficient If you cluster on an (auto incrementing) int
 field, you reduce fragmentation and reduce overall size of the data set.
 This also simplifies indexes needed to cover your relations.


Certo certo certo! Non discuto il fatto che un integer stia bene come id.
Mi lamentavo solo del NOMEella colonna: perchè si deve per forza chiamare
ID, con Django?
Al problema mi ha già risolto Daniele.



 Fai pure


 Grazie!

-- 
Marco Fochesato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] GUI mi spiegate una cosa al volo?

2014-08-14 Per discussione Marco Fochesato
Io uso le gtk, pygtk!
Buone vacanze a tutti.

From Marco
On Aug 14, 2014 8:33 AM, Daniele Zambelli daniele.zambe...@gmail.com
wrote:

 Il 13 agosto 2014 22:45, Luigi Fontana picchiole...@gmail.com ha
 scritto:
  Quello che mi incuriosiva al volo per mero sfizio informativo era il
  sapere quanto sia performante. In futuro i programmini che sto creando
 ora
  potrò trasportarli su windows senza grosse difficoltà?

 Se proprio devi farlo lo potrai fare senza difficoltà. Io ho
 sviluppato sotto GNU/Linux una libreria in Tkinter che uso normalmente
 a scuola sotto Windows.

  Oppure per usare GUI servono accorgimenti particolari?

 Esistono molte librerie per programmare con un'interfaccia grafica
 (GUI). La libreria che scegli deve esistere, ed essere installata, in
 entrambi i sistemi operativi.

 Ciao

 --

 Daniele

 www.fugamatematica.blogspot.com

 giusto!
 nel verso
 forse è perché non guardiamo le cose
 Quando non ci capiamo,
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] GUI mi spiegate una cosa al volo?

2014-08-14 Per discussione Marco Fochesato

 Io uso le gtk, pygtk!

 PyGTK è obsoleto da quasi 3 anni, PyGI (pygobject con introspection) è il
pacchetto da usare oggi.


E fra quanti anni diventerà obsoleto anche questo?


 Buone vacanze a tutti.


 Altrettanto, se evitassi il top-quoting lo sarebbero anche di più

Sorry,
così va bene?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] GUI mi spiegate una cosa al volo?

2014-08-14 Per discussione Marco Fochesato
 Questo purtroppo non te lo so dire, mentre su PyGTK ci ho lavorato per
quasi 10 anni  ed ho fatto il maintainer per 2 o 3, sul nuovo pygobject
(PyGI) non ci ho lavorato molto, il nuovo mantainer è Simon Feltman.

 PyGTK è durato 12 anni, dal 1999 al 2011

 http://www.johnstowers.co.nz/blog/static/images/imported/activity.png
 http://www.johnstowers.co.nz/blog/static/images/imported/activity-auth.png

 mi pare un tempo sufficientemente lungo per dichiarare un pacchetto
stabile e su cui puntare, il passaggio ad introspection secondo me farà in
modo che PyGI durerà ancora più a lungo.

Grazie Gian Mario,
io non sono un programmatore professionista, ma inizieró a documentarmi su
PyGI ed il mio prossimo programmino lo svilupperó con questo modulo.
Nel frattempo mi saró fatto una idea delle differenze e valuteró se fare il
porting per le mie applicazioni già esistenti.
Con pygtk mi son sempre trovato bene. Sia su Linux che su Windows.

Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] GUI mi spiegate una cosa al volo?

2014-08-14 Per discussione Marco Fochesato
Wow. Fantastico.
Grazie mille.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Riutilizzo del cursor nelle query

2014-01-16 Per discussione Marco Fochesato
Io apro una connessione e relativo cursore ad ogni transazione.
Se la transazione prevede l'utilizzo di varie funzioni, passo la
connessione, o il cursore, alle funzioni.

From Marco with Cinafonino ;-)
On Jan 16, 2014 11:31 AM, Manlio Perillo manlio.peri...@gmail.com wrote:

 On 16/01/2014 10:51, piergiorgio pancino wrote:

 Ciao,
 volevo sapere se esiste una best practice per quanto riguarda
 l'esecuzione delle query e l'uso dell'oggetto cursor.
 Per contestualizzare un po' di più ho una classe che in fase di __init__
 si collega al database, all'interno della classe una serie di funzioni
 che fanno delle query.
 Attualmente __init__ crea una istanza di cursor che viene riutilizzata
 per tutte le query.

 self.conn = pyodbc.connect(self.DSN,autocommit=False)
 self.conn=conn
 self.cur=conn.cursor()
 (sono omessi i controlli vari)

 questo modo di fare è secondo voi corretto o è meglio ad ogni query
 creare e poi richiudere un nuovo cursor ?


 Ciao.
 Innanzitutto prova a leggere la PEP 249:
 www.python.org/dev/peps/pep-0249/

 Al momento non ricordo, ma dovrebbe dare delle indicazioni riguardo
 l'utilizzo.

 Infine, ti può essere utile sapere *come* i cursori sono utilizzati in SQL:
 http://www.postgresql.org/docs/9.3/interactive/ecpg-
 commands.html#ECPG-CURSORS

 Come vedi è abbastanza diverso da come viene fatto nella DBAPI; un cursore
 viene creato per una query specifica, ed una sola.


 Ciao  Manlio
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-13 Per discussione Marco Fochesato
Ubuntu Server LTS

From Marco with Cinafonino ;-)
On Dec 14, 2013 8:05 AM, Nicola Larosa n...@teknico.net wrote:

 Simone Federici wrote:
  Ubuntu Server LTS

 Eh no, cosi non ti allinei all'Ubuntu-hating de riguer. :-P

 (Si, sarcasmo prezzolato, ce lo so da me. :-P )

 --
 Nicola Larosa - http://www.tekNico.net/

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Scelta di un IDE

2013-09-12 Per discussione Marco Fochesato
Io uso Geany.
Buona serata a tutti!

Marco
On Sep 12, 2013 8:47 PM, Valerio Maggio valerio.mag...@gmail.com wrote:

 On 12/set/2013, at 20:11, Daniele Palmese pal...@gmail.com wrote:

  A mio avviso è necessario apprendere l'utilizzo di un editor/IDE in
 console, a prescindere da quelli che sono i gusti e le abitudini personali.

 +1
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [postgresql-it] psycopg, cursori e connessioni: tenere occupato un id

2011-05-30 Per discussione Marco Fochesato

 Per avere un errore devi usare LOCK ... NOWAIT (per il lock su una
 tabella) o SELECT ... FOR UPDATE NOWAIT (per il lock sui record). Senza il
 NOWAIT l'effetto è quello di aspettare finché il lock non viene rilasciato.
 
 
Si infatti, ho risolto così.
Ed era pure scritto nella documentazione.
Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [postgresql-it] psycopg, cursori e connessioni: tenere occupato un id

2011-05-29 Per discussione Marco Fochesato
Ho risolto utilizzando entrambe le possibilità:

per l'INSERT, utilizzo la serializzazione delle transazioni (grande
feature)

per l'UPDATE di documenti già inseriti utilizzo il lock (non della
tabella, ma della riga specifica)

l'unica cosa che non riesco a capire è questo.
Secondo la documentazione (se ho letto bene), quando una transazione
trova la riga lockata, dovrebbe tornare un errore.. invece a me resta in
attesa dello sblocco e poi continua.

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] psycopg, cursori e connessioni: tenere occupato un id

2011-05-16 Per discussione Marco Fochesato

 Non ci dici questa chiave primaria di che tipo è e che valori assume.
Scusami. Certo, è un numero intero.
 
 Inoltre, che intendi con prenota?
Ipotizzando che esistano due tabelle:
progressivi_documenti (id_doc, data_doc, causale, id_cliente, etc..)
struttura_documenti(prog_riga, id_doc, descrizione, um, quantita,
etc...)
(ho semplificato eh)

prenotare l'd significa fare un insert sulla prima tabella, senza il
commit e poter lavorare sulla seconda tabella.
La seconda tabella è referenziata alla prima tramite id_doc.
Agli inserimenti, il database pretende che ci sia l'id inserito nella
prima.
Ma se l'utente dovesse annullare l'inserimento, non mi deve rimanere
l'id inserito nella prima.


 Allora, *assumendo* che questo id sia essenzialmente un intero per cui
 un DDT debba avere un id maggiore di quello precedente, la soluzione più
 semplice che mi viene in mente è quella di utilizzare la serializzazione
 del database:
 http://www.postgresql.org/docs/9.0/interactive/transaction-iso.html#XACT-SERIALIZABLE
 
 
 In pratica, puoi creare una tabella `ddt_id` dove memorizzare l'ultimo
 ID utilizzato.
 
 CREATE TABLE ddt_id (
 ddt_id INTEGER NOT NULL PRIMARY KEY;
 );
 
 Quindi, all'interno di una transazione serializzabile:
 1) SELECT dell'ultimo ID inserito dalla tabella `ddt_id`
 2) UPDATE sulla tabella `ddt_id` per incrementare l'ID
 3) Usare l'ID incrementato nel DDT
 4) COMMIT
 
 A questo punto se un altra transazione ha cercato di fare l'UPDATE sulla
 tabella `ddt_id`, riceverai un errore (solo il primo commit riuscirà).
 
Rispondo senza aver letto il link:
siamo sicuri che l'update possa generare un errore?
Credo che l'update possa essere tipo:
UPDATE progressivi_documenti SET id_doc = id_doc+1
come fa a generare un errore?
Non mi è chiaro, magari leggendo il link capisco.


 
 Tra l'altro l'idea di avere una tabella che contiene una sola riga non
 mi convince molto...
Parli della TUA tabella vero?



___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] psycopg, cursori e connessioni: tenere occupato un id

2011-05-16 Per discussione Marco Fochesato
Il giorno lun, 16/05/2011 alle 21.52 +0200, Daniele Varrazzo ha scritto:
 On Mon, 16 May 2011 19:37:21 +0200, Marco Fochesato marco...@libero.it
 wrote:
 
  No, niente buchi.
  Allora, spieghiamoci così:
  siamo di fronte ad un gestionale.
 
 come sempre :)
 
  L'utente x parte per compilare un DDT.
 
 Problemi con le zanzare?
 
  L'applicazione prenota un id (chiave primaria) per il documento.
  L'utente y parte anche lui per compilare un DDT.
  L'applicazione prenota anche per lui un id, lo stesso di quello sopra
  (visto che non è ancora stato chiuso, e potrebbe anche darsi che x
  decida di non chiuderlo e annullare tutto.. (qui è il nocciolo)).
  Il primo che finisce e chiude il ddt, si prende il numero (commit).
  Per il secondo, verrà sollevata una eccezzione e verrà concesso un altro
  id (non mi interessa qui stabilire come).
 
 Non mi sembra il migliore dei comportamenti: perché far fallire la seconda
 transazione quando ci sono almeno diversi modi di farla riuscire?
 
 E se il secondo finisce prima del primo? Dovrebbe fallire il primo?
 
  Quello che mi interessa è la prenotazione.
 
 Se vuoi davvero prenotare un record, puoi inserire un record incompleto
 oppure tenere una tabella separata delle prenotazioni. Forse anche gli
 advisory lock possono essere utili.
 
  Io ho bisogno, durante la compilazione del documento, di testare degli
  inserimenti, e vorrei che l'applicazione ragionasse come se l'id fosse
  inserito. Ma se arriva y, che l'id fosse disponibile anche per lui.
 
 Per fare quello che vuoi tu ha ragione Manlio: usare qualcosa tipo max(id)
 + 1 è la soluzione migliore. Manlio però si è dimenticato di dire di
 prendere un lock sulla tabella (in pratica gli inserimenti devono essere
 serializzati):
 
 1) quando il documento viene prenotato:
 
a) prendi un lock sulla tabella che conflitti con se stesso, per
 esempio LOCK TABLE blah IN EXCLUSIVE MODE.
b) usa come prossimo id SELECT max(id) FROM blah
c) commit sulla connessione, in modo da liberare il lock.
 
 2) quando il documento viene salvato:
 
a) prendi lo stesso lock sulla stessa tabella
b) prendi lo stesso max
c) se il max è diverso da quanto registrato, tira un eccezione.
 
 O alternativamente scrivi direttamente il max nel database e aspettati
 un'eccezione se c'è una constraint UNIQUE su quel campo.
 
 Questa è un'implementazione pessima di un lock pessimistico: se uno
 comincia un'operazione, qualunque operazione concorrente è destinata a
 fallire: perché tu voglia fare questo onestamente mi sfugge.
 
 La documentazione sui lock
 (http://www.postgresql.org/docs/9.1/static/explicit-locking.html) e sul
 comando LOCK (http://www.postgresql.org/docs/9.1/static/sql-lock.html) può
 esserti utile.
 
 Lasciare aperta la transazione per tutta la durata dell'edit è qualcosa da
 NON fare.
 
 
Ottimo Daniele!
Sei stato molto chiaro.
Lock table, serializzazioni.
Tutte cose che non conosco...
Come credo dica il mitico Rocco: l'affare s'ingrossa!!!

Grazie delle dritte ragazzi!
Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] gtk - importazione modulo finestra

2011-02-27 Per discussione Marco Fochesato
Ho creato in un modulo finestra.py, una finestra:

spe = gtk.Window(gtk.WINDOW_TOPLEVEL)
spe.show_all()

Poi, la importo nel modulo principale, così:

from finestra import spe

Allora, non riporto il codice, ma la finestra, all'interno del suo
modulo, si interfaccia ad un database, carica dei dati, e me li fa
vedere in una Textview che è al suo interno.

L'apertura della finestra viene richiamata mediante funzione collegata
ad un bottone del modulo principale.

Problema:
la finestra la prima volta che la chiamo, si comporta bene.
Se la chiudo e la richiamo, si apre senza farmi vedere i widget
(TextView) al suo interno.

Ho provato a fare il reload del modulo... allora la cosa funziona.. solo
che al primo avvio la finestra appare doppia.. chiudo i due doppioni,
richiamo e ne esce una sola. Giusta.

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] stampare su una stampante ad aghi...

2011-02-19 Per discussione Marco Fochesato
 Sì, c'è... ma cos'è, un revival degli anni 80?
:-)))
Grande Daniele! Si, è proprio un revival!!

Sto facendo un gestionale per l'azienda dove lavoro... e qua non ne
vogliono sapere di mollare quelle vecchie DDT a 3 copie... e relative
stampanti.
Ho sgammato il software che attualmente abbiamo in uso, crea il file di
testo.. e poi quando va in stampa vedo che la stampante cambia il led
del pitch in automatico.. mmm..
Il bello è che nel corso degli anni ne ho cambiate più di una di
stampanti... e marche... si vede che ho avuto c... perchè si son sempre
comportate bene.. magari perchè sti caratteri di controllo sono
generici..

Comunque ancora una volta mi hai dato la dritta giusta.
Ora cerco un po' io.
Grazie.
Marco

 
 Devi inviare dei caratteri di controllo. Ogni stampante ha (aveva) i suoi
 e ci sono (c'erano) alcuni standard (epson ecc.)
 
 Usa google col nome della stampante e cerca i caratteri di controllo.
 Python c'entra poco con tutto questo.
 
 


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] stampare su una stampante ad aghi...

2011-02-18 Per discussione Marco Fochesato
Sono riuscito a lanciare la stampa del file di testo!
Bene!
Ora avrei un altro quesito, interessante..
c'è il modo di far cambiare il pitch (grandezza dela carattere) alla
stampante durante la stampa?



Il giorno gio, 17/02/2011 alle 21.34 +0100, Marco Fochesato ha scritto:
 Si, interessante!
 Ma per lanciare la stampa ad una stampante?
 Come si trattano questi dispositivi?
 Come ci si dialoga?
 
 Il giorno mer, 16/02/2011 alle 19.39 +0100, Leonardo Millefiori ha
 scritto:
  http://www.amk.ca/python/simple/
  
  Lo script pyprint potrebbe essere un buon punto di partenza..
  
  Ciao.
  Leonardo
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] stampare su una stampante ad aghi...

2011-02-17 Per discussione Marco Fochesato
Si, interessante!
Ma per lanciare la stampa ad una stampante?
Come si trattano questi dispositivi?
Come ci si dialoga?

Il giorno mer, 16/02/2011 alle 19.39 +0100, Leonardo Millefiori ha
scritto:
 http://www.amk.ca/python/simple/
 
 Lo script pyprint potrebbe essere un buon punto di partenza..
 
 Ciao.
 Leonardo


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Turbopascal??

2011-01-02 Per discussione Marco Fochesato
Ciao a tutti!

Oggi, parlando con un mio nipote, al primo anno di superiori, liceo
tecnologico, mi fa:

Mi stanno insegnando a programmare!!
e io: in cosa?

In Turbopascal!!


In turbopascal???
Scusate, io sono ignorante.. ma ricordo che esisteva quando ero
bambino... fine anni ottanta!!
Ma esiste ancora?
Viene utilizzato a livello produttivo??

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python IDE

2010-12-29 Per discussione Marco Fochesato
Mi aggancio per chiedere una info.
Sono un pivello alle prime armi con Python.
Finora ho sempre utilizzato la Idle..
Vi ho visto parlare de Eclipse + Pydev..
L'ho scaricata, installato Pydev.. e ho strabuzzato gli occhi!
Uau!

Bene.
Quello che non riesco a fare, è lanciare il codice. Non ho nessun tipo
di Run disponibile.
Ho cercato di seguire le istruzioni su pydev.org..
Ma non riesco a capire dove sbaglio!

Grazie
Marco

Ps: ma la mailing list di postgresql.it.. ha qualche problema??
Chiedo a Daniele Varrazzo.. vedo che bazzica ance la..

Il giorno ven, 24/12/2010 alle 11.52 +0100, Emanuele Rampichini ha
scritto:
 Per i progetti più sostanziosi eclipse + pydev, per le prove veloci
 dreampie è fenomenale (lo consiglio caldamente a tutti).
 
 
 Emanuele Rampichini
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] auguri ...

2010-12-24 Per discussione Marco Fochesato
Auguri a tutti anche da parte mia..

Il giorno ven, 24/12/2010 alle 12.17 +0100, Massimo Capanni ha scritto:
 un augurio di Buon Natale a tutti i membri della lista,
 
 
 a presto!
 
 
 massimo
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-11-01 Per discussione Marco Fochesato
 Forse la cosa può essere risolta anche usando nella dichiarazione della table 
 col la clausola
 ON UPDATE CASCADE  
 (http://www.postgresql.org/docs/8.4/interactive/sql-createtable.html)

Giovanni!
Ho risolto seguendo il tuo consiglio.
Ho ri-creato la tabella dando l'azione cascade sull'update della foreign
key.
Grandissimo.

Grazie.
Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-10-25 Per discussione Marco Fochesato
Cavolo ragazzi,
grazie per le risposte! 
Credo che seguirò il consiglio di Giovanni e di Daniele.. 
Giovanni ha centrato in pieno il mio voler sporchettare a piacimento
prima di fare il check della fkey.. è li che voglio arrivare..

Ma devo approfondire il discorso di Daniele.. ste transazioni
annidiate..
più che altro perchè, mi ripeto, sporchettavo allegramente prima in più
di un'occasione.. e poi davo il commit.. è dentro l'eccezione che sembra
non funzionare..

Grazie ancora..
Mi faccio vivo eh.. e vi aggiorno.

Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-10-25 Per discussione Marco Fochesato
On Mon, 2010-10-25 at 11:53 +0200, Daniele Varrazzo wrote:
 Io per conto mio ho provato:
 
 import psycopg2
 
 def test(dsn):
 test if a connection created in an exception handler goes
 autocommit
 cnn = psycopg2.connect(dsn)
 cur = cnn.cursor()
 
 cur.execute(drop table if exists test;)
 cur.execute(create table test (data int primary key);
 insert
 into test values (1);)
 cnn.commit()
 
 # make an error
 try:
 cur.execute(insert into test values (1))
 except psycopg2.IntegrityError:
 # connection created in the handler
 cnn2 =  psycopg2.connect(dsn)
 cur2 = cnn2.cursor()
 cur2.execute(insert into test values (2))
 
 # was cnn2 autocommit?
 cnn3 = psycopg2.connect(dsn)
 cur3 = cnn3.cursor()
 cur3.execute(select count(*) from test where data = 2)
 n = cur3.fetchone()[0]
 
 assert n == 0, connection in exception handler autocommit
 
 # double check
 cnn2.commit()
 cur3.execute(select count(*) from test where data = 2)
 n = cur3.fetchone()[0]
 assert n == 1
 
 print ok
 
 test(dbname=test)
 
 Ma questo test, nelle mie condizioni passa. Io ho sottomano solo una
 versione di sviluppo di psycopg: posso provare più tardi con quella
 che usi
 tu, ma se riesci a creare la condizione che fa fallire l'assert col
 tuo
 setup allora possiamo dire che c'è un bug. Altrimenti non si sa :) 

Testato, passa anche da me nel mio database.
Ma ci voglio capire qualcosa di più
Ciao intanto.


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-10-24 Per discussione Marco Fochesato
Buongiorno a tutti!
Uso Python per creare piccole applicazioni, che si collegano ad una base
dati PostgreSql attraverso il driver psycopg.

Per la prima volta mi son trovato a dover operare una transazione (un
update su due cartelle), all'interno di un except.
Mi sembra che la connessione si comporti diversamente che all'interno
del normale codice.
Intanto, ho dovuto aprire nuovamente la connessione, anche se era già
aperta prima del sollevamento dell'except... ma la cosa peggiore è che
sembra che le istruzioni vengano eseguite immediatamente sul database,
senza attendere il mio commit() finale... è possibile?
Ho bisogno di fare entrambi gli update prima di chiudere la
transazione.. 
sbaglio qualcosa?

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-10-24 Per discussione Marco Fochesato
On Sun, 2010-10-24 at 16:47 +0200, Daniele Varrazzo wrote:

 Bravo :) io sono uno dei maintainer di psycopg.
Bene!! Spero che lo manterrai a lungo!!

 Due cartelle? Intendi due tabelle?
Si scusa.. due TABELLE.. che pirla.
 
  Mi sembra che la connessione si comporti diversamente che all'interno
  del normale codice.
 Non dovrebbe. Ma magari c'e' uno strano path nella libreria in cui
 l'eccezione viene gestita male.
 
boh??

 Mai visto niente del genere. L'eccezione viene generata da un errore nel
 database? Se è coì la connessione è in stato di errore, ma non serve
 crearne una nuova: basterebbe un rollback. Quello che segnali (autocommit)
 sembra un disallineamento tra lo stato dell'oggetto connessione e la
 connessione stessa, che non mi è mai capitato di vedere (ma che potrebbe
 essere effettivamente un bug).
Si, l'eccezione è generata da un errore nel database: 
except psycopg2.IntegrityError: 
quindi dovrei lanciare un rollback per recuperare l'integrità della
connessione?
 
  Ho bisogno di fare entrambi gli update prima di chiudere la
  transazione.. 
  sbaglio qualcosa?
 
 Non hai dato molti dettagli: mi piacerebbe capire meglio cosa succede.
 Puoi scrivere un esempio auto-contenuto di quello che descrivi e che
 versione di psycopg usi?
ehmm... perdonami.. che vuol dir auto-contenuto?
la versione di psycopg che uso? quella che trovo nelle repository di
ubuntu, che è precisamente la 2.0.13-2ubuntu2

Ecco i dettagli:
ho ste due tabelle:
nazioni, con le colonne id_nazione e nome_nazione
clienti, con fra le colonne la colonna nazione che è referenziata alla
colonna id_nazione

con il mio programmino voglio dare la possibilità all'utente di variare
il nome_nazione in archivio e... se vuole.. anche l'id_nazione.
L'eccezione viene sollevata quando viene cambiato un id_nazione già
usato nella tabella clienti.. 
io volevo a sto punto proseguire nell'eccezione, facendo un update sulla
tabella clienti e un update sulla tabella nazioni, e poi dare il
commit.. evitando così di generare errori di database.

Grazie Daniele.

Ps: sei tu che mi hai iniziato eh.. ho ancora qui su carta una tua mail
dove mi spiegavi in velocità la connessione, il cursore, etc.. son
andato un po' avanti..


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

2010-10-24 Per discussione Marco Fochesato
 Grazie per la versione. Vorrei vedere un pezzetto di codice con le
 operazioni che svolgi: la query, l'eccezione, la query *nell'*eccezione...

update = UPDATE clienti.nazioni SET +etichetta+=%s WHERE
+etichetta2=%s;

try:
cur.execute(update, (nuovo_valore, valore_statico))
connDB.commit()
except psycopg2.IntegrityError:  
connDB = psycopg2.connect(connessione)
cur = connDB.cursor()
update1 = UPDATE clienti.anagrafica_clienti SET nazione=%s
WHERE nazione=%s;
estrai = SELECT idnazione FROM clienti.nazioni WHERE
nome_nazione = %s;
   cur.execute(estrai, (nome_nazione,))
   id_nazione_vecchio = cur.fetchone()
   id_nazione_vecchio = id_nazione_vecchio[0]
   cur.execute(update1, (nuovo_valore, id_nazione_vecchio,))
   update2 = UPDATE clienti.nazioni SET +etichetta+=%s WHERE
+etichetta2+=%s;
   cur.execute(update2, (nuovo_valore, valore_statico))
   connDB.commit()  
   cur.close()
   connDB.close()

Non ho mai postato del codice.. spero non si dovesse far in altra
maniera.
Le varie variabili, sono state dichiarate prima.. ma credo vadano bene
tutte. Il problema è proprio nel primo update. Mi dà errore perchè
cambio ina idnazione non ancora presente nella tabella nazioni..

Notte.
Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] gestione dei tasti funzione

2010-09-08 Per discussione Marco Fochesato
Si, utilizzo pyGtk.

Ho risolto inserendo nelle funzione __init__ questa riga:

window.connect(key_press_event, self.doKeyPress)

dove window è la gtk.WINDOW_TOPLEVEL


poi, la funzione doKeyPress è come segue:

def doKeyPress(self, widget, event):
keyname = gtk.gdk.keyval_name(event.keyval)
print the button %s was pressed % keyname
tasto = str(keyname)

if tasto  = F4:
self.miafunzione(parametri)

Marco


On Mon, 2010-09-06 at 20:01 +0200, Emanuele Rampichini wrote:
 Dipende dalla libreria che stai utilizzando. Immagino si tratti di
 pyGTK quindi ti link questa pagina che sembra contenere le
 informazioni che stai cercando:
 
 
 http://www.pygtk.org/docs/pygtk/class-gtkaccelgroup.html
 
 
 Purtroppo non posso esserti più utile di così utilizzando per i miei
 lavoretti principalmente pyQt.
 
 
 Emanuele
 
 Il giorno 06 settembre 2010 19:23, Marco Fochesato
 marco...@libero.it ha scritto:
 Ciao a tutti,
 sento che la domanda è banale.. ma ho googlato un po' e non ho
 trovato
 niente.. per cui ho deciso di disturbarvi.
 
 Come si posso gestire con python, i tasti funzione?
 Esempio: ho la mia applicazione in interfaccia grafica gtk che
 sta
 girando. Vorrei che alla pressione del tasto F4 fosse chiamata
 una
 funzione.
 
 Come fare?
 
 Grazie!
 
 Marco
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] gestione dei tasti funzione

2010-09-06 Per discussione Marco Fochesato
Ciao a tutti,
sento che la domanda è banale.. ma ho googlato un po' e non ho trovato
niente.. per cui ho deciso di disturbarvi.

Come si posso gestire con python, i tasti funzione?
Esempio: ho la mia applicazione in interfaccia grafica gtk che sta
girando. Vorrei che alla pressione del tasto F4 fosse chiamata una
funzione.

Come fare?

Grazie!

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] R: Re: R: Re: R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.

2010-05-18 Per discussione Marco Fochesato
 Ma inizia a venirmi un dubbio: sicuro che tu vuoi giocare con
 set_select_function() e _non_ semplicemente aggiungere una callback
 per il segnale changed della selection?

Rieccomi!
Infatti, era proprio cosi.. la documentazione in mia mano era un po'
povera e non avevo approfondito a sufficienza, come al solito! Ho
risolto in maniera perfetta!!!
Grazie!
Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] R: Re: R: Re: R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.

2010-05-07 Per discussione Marco Fochesato
Dopo aver risolto il problema,
ho notato che la procedura sulle selezioni successive alla prima,
rallentava parecchio.
Ho così scoperto che, alla prima selezione la funzione chiamata viene
eseguita una volta.. alle successive viene eseguita tre volte.
Da cosa può dipendere?
Tenete conto che la riga di codice:

treeselection.set_select_function(self.stampalistaprodotti,iter)

si trova nella funzione def __init___... può dipendere da questo?

Marco



Il giorno mar, 04/05/2010 alle 16.24 +0200, marco...@libero.it ha
scritto:
 ci sono arrivato!
 Alla fine della funzione chiamata, ho aggiunto:
 return True
 
 E la riga si seleziona...
 
 Marco
 
 Messaggio originale
 Da: marco...@libero.it
 Data: 04/05/2010 12.46
 A: Pietro Battistontoo...@email.it
 Cc: Discussioni generali sul linguaggio Pythonpython@lists.python.it
 Ogg: Re: [Python] R: Re: R: Re: Gtk - ListView - Catturare la selezione di 
 una riga e lanciare una funzione.
 
 Infatti!
 La documentazione dice proprio cosi!
 Ho fatto un sacco di prove.. ma non riesco a capire come far passare
 alla funzione sto True..
 Quindi, il problema si riassume qui:
 
 treeselection.set_select_function(self.stampalistaprodotti,
 iter)
 
 
 def stampalistaprodotti(self, evento, data):
 
 Come devo fare??
 
 Marco
 
 
 
 Il giorno mar, 04/05/2010 alle 09.12 +0200, Pietro Battiston ha scritto:
  Il giorno lun, 03/05/2010 alle 13.32 +0200, marco...@libero.it ha
  scritto:
   OK, mi è un po' più chiaro, anche se non ho ovviamente presente tutti i
   fattori in gioco... self.stampalistaprodotti restituisce True?
   
   ciao
   
   Pietro
   
   Perdonami l'ignoranza.. cosa vuoi dire per restituisce True?
   self.stampalistaprodotti è la funzione che viene chiamata quando 
 seleziono, 
   parte e fa quello che deve fare in maniera perfetta!
   
  
  Ora mi rendo conto che forse il disguido era molto più terra-terra:
  restituisce True è semplicemente la traduzione italiana di returns
  True, ovvero, per farla brevissima, ha un return True alla fine.
  
  Quel che dice la documentazione è che tu potresti _non_ volere che la
  riga diventi selezionata, e se _lo vuoi_ glielo fai capire facendo in
  modo che la funzione impostata con set_select_function() restituisca,
  appunto, True.
  
  ciao
  
  Pietro
  
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python
 
 
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gtk - ListView - Catturare la selezione di una riga e

2010-05-03 Per discussione Marco Fochesato
No,
niente da fare... si comporta come prima..
anche se elimino direttamente tutto il comando..


Il giorno lun, 03/05/2010 alle 18.39 +0200, Giuseppe Amato ha scritto:
 Premetto che non conosco gtk, ma da quello che ho visto nella documentazione
 sembra che il problema sia qui
 
   treeselection.set_mode(gtk.SELECTION_BROWSE)
 
 Credo che con il modo selezionato l'evidenziazione funzioni al passaggio del
 mouse, quindi pur ammettendo che non sposti ilmouse probabilmente la seconda
 ListView riceve il focus e quindi ti perde la selezione.
 Prova a modificare in gtk.SELECTION_SINGLE e selezioni col click. Se va sai
 quale problema risolvere.
 
 Ciao
 Giuseppe
 
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] R: Re: R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.

2010-05-03 Per discussione Marco Fochesato

 altro, è l'unica cosa che mi viene in mente con le informazioni che ho -
 se il problema non è quello, mi sa che senza un esempiuccio funzionante
 del problema non so aiutarti).
 

Ecco l'esempio funzionante. Chiedo perdono ai mostri che leggono la
lista per li codice che posto... sono un novello.
Sorvolate dal notare il modo in cui filtro i dati dei prodotti. Nella
realtà uso il parametro che mi dà la selezione del fornitore per
estrarre i dati già filtrati dal database con un comando SQL.

import pygtk
pygtk.require('2.0')
import gtk


class Programma:

def __init__(self, principale):

self.mioPrincipale = principale
self.finestraprincipale =
gtk.Window(gtk.WINDOW_TOPLEVEL)
self.finestraprincipale.connect(delete_event,
self.delete_event)
self.finestraprincipale.connect(destroy, self.destroy)
self.finestraprincipale.set_size_request(300, 300)
self.finestraprincipale.set_title(PROGRAMMA PROVA LISTVIEW)
self.framegenerale = gtk.HBox(False,0)
self.finestraprincipale.add(self.framegenerale)
self.quadroprodotti = gtk.VBox (True, 1)

self.scrollwinfornitori = gtk.ScrolledWindow()
self.scrollwinfornitori.set_size_request(100, 200)
self.scrollwinfornitori.set_policy(gtk.POLICY_AUTOMATIC,
gtk.POLICY_AUTOMATIC)
self.listafornitor = gtk.ListStore(str, str)
self.listafornitori = gtk.TreeView(self.listafornitor)
self.listafornitori.set_rules_hint(1)
self.colonnaidfornitore = gtk.TreeViewColumn(idfornitore)
self.colonnanomefornitore = gtk.TreeViewColumn(Fornitore)

self.listafornitori.append_column(self.colonnanomefornitore)
self.cell_fornitori = gtk.CellRendererText()
self.colonnanomefornitore.pack_start(self.cell_fornitori, True)
self.colonnanomefornitore.add_attribute(self.cell_fornitori,
'text', 1)
self.quadroprodotti.add(self.scrollwinfornitori)
self.scrollwinfornitori.add_with_viewport(self.listafornitori)
self.scrollwinfornitori.set_shadow_type(gtk.SHADOW_ETCHED_IN)

self.scrollwinprodotti =gtk.ScrolledWindow()
self.scrollwinprodotti.set_size_request(100, 200)
self.scrollwinprodotti.set_policy(gtk.POLICY_AUTOMATIC,
gtk.POLICY_AUTOMATIC)   
self.listaprodott = gtk.ListStore(str, str)
self.listaprodotti= gtk.TreeView(self.listaprodott)
self.listaprodotti.set_rules_hint(1)
self.colonnaidprodotto = gtk.TreeViewColumn(IdProdotto)
self.colonnanomeprodotto = gtk.TreeViewColumn(Prodotto)

self.listaprodotti.append_column(self.colonnanomeprodotto)
self.cell_prodotti = gtk.CellRendererText()
self.colonnanomeprodotto.pack_start(self.cell_prodotti, True)
self.colonnanomeprodotto.add_attribute(self.cell_prodotti,
'text', 0)
self.quadroprodotti.add(self.scrollwinprodotti)
self.scrollwinprodotti.add_with_viewport(self.listaprodotti)
self.scrollwinprodotti.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
self.quadroricetta = gtk.VBox(False, 1)

self.framegenerale.add(self.quadroprodotti)
self.framegenerale.show_all()
self.finestraprincipale.show_all()


rows = [(1,Tizio), (2,Caio), (3,Sempronio)]

for row in rows:
nomefornitore = str(row[1])
idfornitore = str(row[0])
self.listafornitor.append([idfornitore, nomefornitore])

treeselection=self.listafornitori.get_selection()
treeselection.set_mode(gtk.SELECTION_SINGLE)
treeselection.set_select_function(self.stampalistaprodotti,
iter)


def stampalistaprodotti(self, evento, dato):

self.listaprodott.clear()
treeiter = self.listafornitor.get_iter(evento)

idfornitoreselezionato = self.listafornitor.get_value(treeiter,
0)   

rows = [(1, 1, Mele),(2, 4, Pollo),(3, 7,
Carote)]
for row in rows:
idfornitore = str(row[0])
idprodotto = str(row[1])
nomeprodotto = str(row[2])
if idfornitore == idfornitoreselezionato:
self.listaprodott.append([nomeprodotto, idprodotto])
   

def delete_event(self, widget, data=None):
return gtk.FALSE

def destroy(self, widget, data=None):
return gtk.main_quit()


def main(self):
gtk.main()

if __name__ == __main__:
radice=
first = Programma(radice)
first.main()


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.

2010-05-02 Per discussione Marco Fochesato
Ciao a tutti!
Ho creato una ListView, e ho fatto in modo che nel momento in cui viene
selezionata una riga, parta una funzione. Così:

treeselection=self.listafornitori.get_selection()
treeselection.set_mode(gtk.SELECTION_BROWSE)
treeselection.set_select_function(self.stampalistaprodotti,
iter)


Funziona tutto a dovere. L'unica noia è che quando clicco su una riga
della listafornitori, la funzione parte, ma la riga selezionata non
viene evidenziata.. Sul manuale è scritto che la funzione viene lanciata
prima della selezione della riga.. quindi credo che il processo di
selezione venga stoppato li... 
Si potrebbe rimediare inserendo nella funzione richiamata un comando che
mi evidenzi la riga selezionata, e poi proceda con il resto delle cose
che deve fare..

Qualcuno sa come fare?

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] execfile.. va e non va..

2010-03-10 Per discussione Marco Fochesato
Il giorno lun, 08/03/2010 alle 18.08 +0100, Valerio Turturici ha
scritto:
 os.path.realpath(os.curdir)

Qualcosa non va:

 print os.path.realpath(os.curdir)
Traceback (most recent call last):
  File pyshell#0, line 1, in module
print os.path.realpath(os.curdir)
NameError: name 'os' is not defined

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] execfile.. va e non va..

2010-03-10 Per discussione Marco Fochesato
Fatto!
L'ho sgamato!
Quando lancio il programmino da idle, l'output è la cartella dove è
salvato il programmino.
Quando lo lancio con il lanciatore del desktop, l'output è la mia home
(quindi non trova il file da lanciare).
Ho risolto dando questo comando:
os.curdir = la/cartella/che/mi/interessa
sembra funzionare.. 
non son del tutto convinto che sia questa la soluzione però.. visto che
con lo stesso programmino lanciavo anche altri file, nella stessa
situazione del primo... e gli altri partivano (quindi li trovava senza
aver bisogno di dichiarare il path..)...
Bohh!!
Marco

Il giorno mer, 10/03/2010 alle 21.03 +0100, Valerio Turturici ha
scritto:
 Devi importare il modulo os prima ;)


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Nascondere il codice Python

2010-03-09 Per discussione Marco Fochesato

 Proteggono da cosa? ho gia' detto che devono avere permessi restrittivi.
 
Bene,
Sandro ti chiedo di portare pazienza.. Ho imparato un po' ad usare
ConfigParser. So come inserire dei dati nelle sezioni e come poi
estrarli.
La mia domanda è sul il file deve avere permessi restrittivi.
Ti dico come la capisco io: l'amministratore del pc(io), crea il file di
configurazione e inserisce i dati. Dopodichè, inibisce la lettura e la
scrittura del file ad altri utenti (andando su proprietà, permessi del
file).
L'utente lancia lo script e lo stesso script va a prendersi i dati in
questo file con i permessi restrittivi.
Io la capisco così, il problema è che lo script non riesce a leggere nel
file se ha questi permessi restrittivi attivati...

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] execfile.. va e non va..

2010-03-06 Per discussione Marco Fochesato
Ciao ragazzi,
sono novellino..

E' da un po' che non riesco a risolvere un problema..
nel mio programmino lancio un file:

execfile(maramao.py)

il file si trova nella stessa directory del programmino..

Bene..
se lancio il programma da idle di python, il programmino mi apre il
maramao.py.
Se lancio il programma con un lanciatore (sono in ubuntu) da desktop che
esegue python programmino.py, l'execfile non mi lancia il maramao..

com'è possibile? Dove sbaglio??

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] pygtk: AttributeError: 'module' object has no attribute 'Window'

2010-01-16 Per discussione Marco Fochesato
Ciao a tutti,
sono un sei mesi che ho iniziato ad utilizzare Python, e lo trovo
stupendo.
Ho già creato una mia applicazione, usando le librerie Tkinter.

Ora vorrei iniziare a studiare un po' le Gtk..
ho iniziato con il tutorial su Pygtk, ma mi blocco al primo programmino:

import pygtk
pygtk.require('2.0')
import gtk
class FirstWin:
def __init__(self):
self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.win.show()
def main(self):
gtk.main()
if __name__ == __main__:
first = FirstWin()
first.main()

con sto risultato:

self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
AttributeError: 'module' object has no attribute 'Window'

Dove sbaglio?
Lavoro su Ubuntu 9.10
se  importo le librerie da prompt idle, non mi dà errore...

Ho googlato un po', ma non ho trovato soluzioni..

Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pygtk: AttributeError: 'module' object has no attribute 'Window'

2010-01-16 Per discussione Marco Fochesato

 Potresti riportare un traceback completo? A me il programmino
 funziona... Come lo esegui?

ecco:

 
Traceback (most recent call last):
  File /home/marco/center.py, line 11, in module
first = FirstWin()
  File /home/marco/center.py, line 6, in __init__
self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
AttributeError: 'module' object has no attribute 'Window'

uso l'idle di python per eseguirlo,
cioè:
il programma è salvato nel file center.py (nome dato a caso), lo apro
con l'idle e lo lancio con F5.. come faccio con tutti i miei
programmuzzi.

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pygtk: AttributeError: 'module' object has no attribute 'Window'

2010-01-16 Per discussione Marco Fochesato

 
 Non è che hai un modulo nella tua home di nome gtk.py (o .pyc)?
 
 --
 Antonio Valente
 

Si...
che stupido..

all'inizio sto programmino l'avevo proprio chiamato gtk.py..

ora li ho eliminati, sia il .py che il .pyc

E FUNZIONA..

Scusatemi ragazzi e grazie mille...

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Tkinter List Box font size

2009-12-16 Per discussione Marco Fochesato
Ciao ragazzi,
Vi assicuro che ho cercato parecchio sul web..
qualcuno mi può spiegare come cambiare il size del font in una listbox
di Tkinter?

Se faccio:
self.mialista.configure(font=Courier)
me lo cambia..

se faccio altri tentativi mi dà errore,
oppure questo (font=Courier, 10), mi ridà il font di sistema con il
size 10...

Mah...

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Tkinter List Box font size

2009-12-16 Per discussione Marco Fochesato
No.. avevo già provato.. ecco l'output:

Exception in Tkinter callback
Traceback (most recent call last):
  File /usr/lib/python2.6/lib-tk/Tkinter.py, line 1413, in __call__
return self.func(*args)
  File
/usr/lib/python2.6/dist-packages/Pmw/Pmw_1_3/lib/PmwScrolledListBox.py, line 
86, in releaseEvent
_handleEvent(event, 'release')
  File
/usr/lib/python2.6/dist-packages/Pmw/Pmw_1_3/lib/PmwScrolledListBox.py, line 
376, in _handleEvent
_listboxCache[event.widget]._handleEvent(event, eventType)
  File
/usr/lib/python2.6/dist-packages/Pmw/Pmw_1_3/lib/PmwScrolledListBox.py, line 
343, in _handleEvent
command()
  File /home/marco/TINTURA.py, line 183, in stampalistaprodotti
self.listaprodotti.configure(font=Courier, size=10)
  File /usr/lib/python2.6/lib-tk/Tkinter.py, line 1205, in configure
return self._configure('configure', cnf, kw)
  File /usr/lib/python2.6/lib-tk/Tkinter.py, line 1196, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
TclError: unknown option -size

Secondo me c'è un conflitto di librerie... sono ignorante.. però deduco
da quanto leggo..
io nella stessa gui ho widget di Tkinter e di Pmw (Python Mega Widget),
qui sembra che sollevi una eccezione Pmw.. ma la Listbox è di Tkinter!!

Quindi:
1. Se faccio la listbox con Tkinter, posso scegliere solo il font e non
il suo size.
2. Se faccio la listbox con Pmw, non posso scegliere nè font nè size.

...

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Macro in Python per Openoffice

2009-10-30 Per discussione Marco Fochesato
C'è qualcuno fra di voi che utilizza Python per creare macro da far
girare in Openoffice?
Se si, mi trovo di fronte ad un problema.
Ho creato un semplice script, l'ho salvato nella cartella giusta dove
Ooo deve trovare gli scripts. Quando apro Openoffice, vado in gestisci
macro, python, macro personali, vedo il mio bello script con il suo
nome.. solo che quando ci vado a cliccare sopra per selezionarlo, non mi
dà nessuna macro sottostante (mentre le macro in python predefinite da
openoffice le da..).. non riesco a capire.. si comporta come se la mia
macro fosse una cartella vuota senza macro dentro.
Ho controllato: ho python-uno installato..
quale potrebbe essere il motivo?

Marco

OT
.. benvenuto a Ubuntu 9.10 ..
/OT

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Python e PostgreSql

2009-10-23 Per discussione Marco Fochesato
Ciao a tutti!
Grazie all'aiuto di questa lista ho iniziato a studiare Python, con
l'intento di utilizzarlo principalmente per interfacciarmi al mio server
PosgreSql, implementando Openoffice fino ad arrivare (spero) a farmi
un'applicazione vera e propria.

Ora, sto studiando i tutorial... ma ho fretta..
so come connettermi al database,
vi chiedo:

1. C'è un qualche documento che spieghi i comandi Python per
interfacciarsi a PostgreSQL?
2. Mi date alcuno comandi esemplificativi?
es. Estrai i dati da una tabella x e inseriscili in una tabella y...

Grazie mille a tutti

Marco

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python, PosgreSQL, Psycopg e Windows XP

2009-09-30 Per discussione Marco Fochesato
Grazie a tutti!
Ho risolto installando il ridistribuibile Visual C++ 2005!!
Funziona!


Marco

On mar, 2009-09-29 at 21:18 +0200, Marco Beri wrote:
 2009/9/29 marco...@libero.it marco...@libero.it
 from _psycopg import
 BINARY, NUMBER, STRING, DATETIME, ROWID
 ImportError:
 DLL load failed:
 Impossibile avviare l'applicazione specificata. La
 configurazione
 dell'applicazione non è corretta. Una nuova installazione
 dell'applicazione
 potrebbe risolvere il problema.
 
 Questo link mi e` stato di molto aiuto: http://tinyurl.com/ydmfwpk
 
 In pratica uno dei link che troverai li`, dice che o devi installare
 una versione precedente (la 2.0.10 funziona bene anche con Postgresql
 8.4) oppure devi scaricare il pacchetto ridistribuibile di Visual C++
 2005 che trovi qui:
 
 http://www.microsoft.com/downloads/details.aspx?familyid=766a6af7-ec73-40ff-b072-9112bab119c2displaylang=en
 
 
 Ciao.
 Marco.
 
 
 -- 
 http://thinkcode.tv - Prossimamente su questi schermi
 http://beri.it - Blog di una testina di vitello
 http://stacktrace.it - Aperiodico di resistenza informatica
 

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] R: Re: R: Re: Python, PosgreSQL, Psycopg e Windows XP

2009-09-30 Per discussione Marco Fochesato

 
 Ed infine, sinceramente, passa a GNU/Linux (possibilmente Debian).
 
 federico
 

eh eh eh...
e cosa credi che stia tramando ormai da una decina di mesi??
E' che è difficile portare un cambiamento del genere in ambiente
lavorativo.. soprattutto se lo devi fare.. a cuore aperto..
mica puoi formattare e ripartire..

ma ce la farò, credimi..

Son troppo soddisfatto da PostgreSQl e da Openoffice.

Marco


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python