[Python] comportamento def async

2024-05-13 Per discussione Perini Matteo

Ciao,

vorrei leggere lo stato di un dispositivo ewelink (sonoff) tramite 
script ma ricevo un comportamento che non capisco.


Se faccio uno script isolato

importewelink
fromewelinkimportClient, DeviceOffline
@ewelink.login('Password', 'em...@email.eu')
asyncdefask_status(client: Client):
device= client.get_device('1')
try:
print(device.state.value)
exceptDeviceOffline:
print("Device is offline!")

ottengo esattamente quello che voglio ovvero il print mi dice se il 
dispositivo è on, off o offline.



ho provato ad integrare la stessa funzione in uno script un po' più 
articolato per comunicare con un bot telegram.


fromtelegramimportUpdate
fromtelegram.extimportApplicationBuilder, ContextTypes, CommandHandler, 
MessageHandler, filters

fromcredentialsimportTOKEN
importewelink
fromewelinkimportClient, DeviceOffline
@ewelink.login('Password', 'em...@email.eu')
asyncdefask_status(client: Client):
device= client.get_device('1')
try:
print(device.state.value)
exceptDeviceOffline:
print("Device is offline!")
asyncdefstart(update: Update, context: ContextTypes.DEFAULT_TYPE):
awaitcontext.bot.send_message(chat_id=update.effective_chat.id, 
text="I'm a bot, please talk to me!")

asyncdefcheck(update: Update, context: ContextTypes.DEFAULT_TYPE):
awaitcontext.bot.send_message(chat_id=update.effective_chat.id, 
text=ask_status)

if__name__== '__main__':
application= ApplicationBuilder().token(TOKEN).build()
start_handler= CommandHandler('start', start)
check_handler= CommandHandler('check', check)
application.add_handler(start_handler)
application.add_handler(check_handler)
application.run_polling()


Il bot funziona (è un po' più complicato di così) ma quando chiamo 
"ask_status" mi restituisce sempre lo stato che aveva il dispositivo 
quando faccio partire il bot.


Come posso fare per forzare l'esecuzione di ask_status ogni volta che 
richiamo la funzione check?


Cosa mi sto perdendo?


Grazie a chi mi può dare un suggerimento

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


[Python] modo furbo per trovare pattern differenti in una stringa

2024-02-13 Per discussione Perini Matteo

Ciao a tutti,

è da un po' che non scrivo.

Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
Gcode.

Un esempio del testo da parsare è:

;LAYER:1
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z4
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E1494.81223
G1 X702 Y1202 E2242.21834
G92 E0
G1 X1298 Y1202 E747.40611
G1 Y1798 X1298 E1494.81223
;TIME_ELAPSED:177.752007
;CHANGE;
;LAYER:2
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z6
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E2242.21834
G92 E0
G1 X702 Y1202 E747.40611

non ho grossi problemi ad effettuare un parsing corretto ma lo sto facendo con 
vari if, elif, case,  ecc. cosa che non mi piace molto.

Stavo provando ad utilizzare le regex ma non sto riuscendo a fare quello che 
voglio (in modo pulito) ovvero identificare le coordinate X, Y e Z anche se in 
alcuni casi hanno posizioni invertite.
Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
dizionario.
Stavo usando alcuni pattern tipo ".*Z(?P\d+[.]?\d*)" che vanno bene per individuare le coordinate di un 
asse ma capita che le righe contengano x y e z oppure solo Z oppure solo 
x e y. Importante, in alcuni casi potrebbero essere anche in ordine 
differente tipo z y e x. Per ora i numeri dopo E e F posso trascurarli 
ma vi chiederei aiuto per riuscire ad ottenere le coordinate da ogni 
riga. se tutte le righe rispettassero lo stesso pattern non avrei 
problemi ma non so come affrontare soprattutto il problema di avere 
pattern diversi in ordine (quasi) random. Spero di essere stato 
abbastanza chiaro. Grazie a tutti Matteo


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


Re: [Python] Problemi di deploy di web app su heroku

2023-01-21 Per discussione Perini Matteo

Buongiorno a tutti,

dopo svariate vicissitudini con docker, gunicorn e heroku, sono riuscito a fare 
il deploy della mia app.

Per futura memoria una delle cose che mi ha fatto perdere più tempo è legata a 
gunicorn.

In particolare il deploy va fatto lanciando il comando:

gunicorn app:app -b 0.0.0.0:$PORT

Molte guide online suggeriscono il deploy impostando una porta fissa tipo 
0.0.0.0:5000 ma questo non permette ad heroku di fare il binding delle porte.

Magari prima o poi serve anche a qualcun altro

Grazie mille a tutti dell'aiuto.

Ciao

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


Re: [Python] Problemi di deploy di web app su heroku

2023-01-11 Per discussione Perini Matteo

Grazie Federico,

mi sembra che possa essere la soluzione che stavo cercando anche se mi pare un 
po' complesso da fare.

Nei prossimi giorni provo e poi vi faccio sapere.

Grazie mille ancora

Ciao

Matteo

Il 11-Jan-23 9:50, Federico Fissore ha scritto:


Ciao

Non ho mai usato Heroku, ma vedo che supportano il deploy di immagini 
docker.


Se usare docker è un'opzione per voi, allora potete deployare 
un'immagine con le dipendenze necessarie a compilare la libreria, le 
librerie, e il vostro codice python.


Se funziona, potete poi ottimizzare usando una multi-stage build 
https://docs.docker.com/build/building/multi-stage/ :
1. nella prima parte, installate gcc e le librerie, dicendo a pip di 
salvare le wheels in una cartella
2. nella seconda, installate le librerie partendo dalle wheels in 
quella cartella


Noi facciamo così in un paio di servizi che usano librerie con parti 
native da compilare: la build è lenta, ma il risultato è un'immagine 
docker snella e minimale


ciao

federico___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Problemi di deploy di web app su heroku

2023-01-10 Per discussione Perini Matteo

Ciao Marco,

intanto grazie mille per le tue risposte.

Ieri sera dopo aver girovagato un bel po' su internet ero arrivato alla 
conclusione di dover creare un whl.
Ho passato qualche ora a provare, anche utilizzando il tool conda-press (che 
dovrebbe creare il whl in automatico), ma senza alcun risultato.

Effettivamente, come dici tu temo che creare il whl non sia facile/possibile.
Non ho idea se si possa compilare direttamente su heroku ma indagherò.
Purtroppo questa libreria è indispensabili per l'app e temo non ci siano 
sostituti validi.

Proverò ancora a risolvere,

Ciao



Il 10-Jan-23 9:56, Marco Giusti ha scritto:


E' questo il pacchetto che devi installare [1]?
Guardando alle istruzione di installazione [2], non credo che sia
possibile create un file whl, quindi cercherei di risolvere la
compilazione del pacchetto dentro Heroku stesso.
[1]https://github.com/tpaviot/pythonocc-core
[2]https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Problemi di deploy di web app su heroku

2023-01-09 Per discussione Perini Matteo

Ciao a tutti,

vi chiedo aiuto perchè sto riscontrando problemi a fare il deploy di una web 
app flask su heroku.

Credo che il problema stia nella creazione del virtual env su heroku.

L'app che ho costruito fa uso di varie librerie, tutte tranne una installabili 
tramite pip.
Una invece, PyOCC (porting per python di OpenCascade), non sono riuscito ad 
installarla ne con pip ne compilando i sorgenti.

Fortunatamente ho trovato un pacchetto conda già pronto e ho portato avanti 
tutto lo sviluppo dell'app in un conda env (pensando non vi fosse grande 
differenza con venv).

Adesso però per fare il deploy su heroku ho scoperto che bisogna generare da 
conda un requirements.txt che poi viene usato dallo script di heroku per creare 
l'ambiente (usando venv se non sbaglio).

Visto che non ne vengo a capo e il deploy si "rompe" sempre (penso perchè pip 
non riesce ad installare pyOCC), ho pensato di copiare la libreria OCC dall'environment 
conda alla mia cartella di progetto in modo da portarla dentro heroku come sorgente.

Naturalmente in locale tutto funziona bene.

Non so se ho spiegato abbastanza bene la situazione ma arrivo alle domande:

1) Ho capito bene? heroku usa venv? non posso usare un conda env in heroku 
giusto?

2) Se volessi spostare una libreria dall'ambiente conda alla cartella locale 
del progetto c'è un modo per farlo? come posso fare a importare OCC in modo 
corretto?

3) Ho provato a copiare la cartella OCC da conda in locale e cambiare tutti gli import 
per far puntare alla nuova cartella ma ottengo "segfault". Ipotizzo che sia 
dovuto al fatto che è un porting da C++. Idee?

4) avete altri suggerimenti?

E' la mia prima flask app un po' articolata e non sono molto esperto.

Grazie per ogni aiuto.

Ciao

Matteo

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


Re: [Python] pytest e classi

2015-10-27 Per discussione Perini Matteo

Il 26/10/2015 21:31, Manlio Perillo ha scritto:

Un ultimo consiglio.
Per testare funzioni come somma di solito è preferibile usare una
tabella con l'input e l'output corretto; ad esempio:

Fatto! grazie

Ora però ho un altro problema che non riesco a risolvere.
Riporto l'esempio di prima con il nuovo problema.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class CC():
def __init__(self):
self.a = 2
self.b = 4
self.c = 5
def menouno(self,x):
return x-1
def somma(self):
return self.menouno(self.a+self.b+self.c)


if __name__=="__main__":
tt=CC()
print(tt.somma())

la somma in questo caso fa 10

Il mio file di test ora è così:

from pt import CC

def test_somma():
CC.__init__(CC)
assert CC.somma(CC)==10

Ma in questo caso self.menouno da errore perchè riceve un solo parametro 
(dice che manca la x)


Se nel file metto "return self.menouno(self, self.a+self.b+self.c)" 
viene eseguito il test ma non va più il programma e viceversa!


Ho cercato nella documentazione ma non ho ancora trovato una soluzione.

Grazie per l'aiuto
M.






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


Re: [Python] pytest e classi

2015-10-27 Per discussione Perini Matteo

Il 27/10/2015 13:40, Manlio Perillo ha scritto:

Ti ho detto che non devi usare la classe in questo modo!
https://docs.python.org/2/tutorial

La classe la devi*instanziare*.

Pian piano si impara
Grazie dell'aiuto
M
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pytest e classi

2015-10-26 Per discussione Perini Matteo

Il 26/10/2015 20:02, Manlio Perillo ha scritto:

test_somma **non** va messo nel modulo principale, ma nel modulo di test.
Ovvio che non lo trova.
Laggi la documentazione di pytest per vedere come vengono trovate le
funzioni di test.

OK!

E' l'unico modo di fare unit test.
Il problema è che quel codice è sbagliato; non è il modo corretto di
usare le classi!

Il modo corretto è:

def test_somma():
 cc = CC(2, 4, 5)
 assert cc.somma() == 11


Chiaro!
Grazie
M.

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


Re: [Python] pytest e classi

2015-10-26 Per discussione Perini Matteo

Il 26/10/2015 18:56, Manlio Perillo ha scritto:

Io non vedo il senso di quello che vuoi fare...

Ok scusate... forse riesco a chiarire!

se ho questo codice (pt.py):

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np

def plusone(x):
return x+1

class CC():
def __init__(self):
self.a = 2
self.b = 4
self.c = 5

def somma(self):
return  self.a+self.b+self.c
def test_somma():
assert somma()==11

if __name__=="__main__":
tt=CC()
print(tt.somma())


se do il comando:
py.test-3 pt.py

pytest non trova nessun test da fare!
se richiamo il test da un file esterno (test_pt.py) in questo modo:

from pt import CC

def test_somma():
CC.a=2
CC.b=4
CC.c=5
assert CC.somma(CC)==11

il test funziona.

Ma è il modo giusto di passare i parametri alla funzione di test?

Spero di non aver fatto ulteriore confusione!
Grazie
Ciao
M.

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


[Python] pytest e classi

2015-10-26 Per discussione Perini Matteo

Ciao,
sto iniziando ad usare pytest.
Probabilmente mi sto perdendo in un bicchier d'acqua ma ho grossi 
problemi con il passaggio di parametri alle funzioni di test.

Faccio un esempio che forse è più facile

Ipotizziamo un file (xxx.py) fatto così:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np

def plusone(x):
return x+1

class CC():
self.a = 2
self.b = 4
self.c = 5

def somma(self):
return  self.a+self.b+self.c

   somma()

---
Come faccio a testare la funzione somma?
L'unico modo che ho trovato è stato quello di cambiare la funzione della 
classe così:


def somma(self,a,b,c):
self.a=a
self.b=b
self.c=c
return  self.a+self.b+self.c
   somma(CC,self.a,self.b,self.c)

ma mi sembra una complicazione inutile.

Ho un file esterno per richiamare tutti i test_xxx.py fatto così:

from xxx import *
from xxx import CC


def test_somma():
assert somma(2,3,3)==8


Il test funziona ma non mi sembra proprio il modo giusto di operare

Potreste darmi qualche dritta  su come fareste voi?
Come posso testare la funzione somma come scritta nel file originale?
Grazie
Ciao
Matteo




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


[Python] migliorare lo stile

2015-10-22 Per discussione Perini Matteo

Ciao a tutti,
programmo da un po' con python ma, anche dopo svariate applicazioni sia 
per lavoro che per uso personale sento la mancanza di uno "stile" di 
programmazione.
Probabilmente la cosa è dovuta anche al fatto che, da ingegnere, quando 
le cose funzionano il resto è secondario.
Avendo imparato da autodidatta a programmare non capisco bene se la 
"struttura" che do' ai programmi è decente o no?
Ho letto e cerco di mettere in pratica la PEP8 per quanto riguarda code 
style ma la ma domanda riguarda più la struttura di file e directory e 
cosa mettere dove... non so se sto riuscendo a spiegarmi.


Ad esempio: ho fatto dei software funzionanti in cui tutto era nello 
stesso file (GUI, elaborazione dati, visualizzazioni, comunicazione con 
device ecc...) e software in cui dal "main.py" richiamavo come moduli 
una miriade di file esterni .py che contenevano solo una piccola parte 
del codice.
LA domanda è appunto se esiste una "condotta" anche solo indicativa o il 
layout del sowtware dipende unicamente dal programmatore?


Potreste in caso suggerirmi delle risorse che voi avete trovato utili in 
tal senso?

Grazie mille
CIao
M.



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


[Python] Nuova board

2015-05-12 Per discussione Perini Matteo

Ciao,
magari a qualcuno interessa...
a me piace come idea.
https://www.kickstarter.com/projects/wipy/the-wipy-the-internet-of-things-taken-to-the-next?ref=thanks
Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Nuova board

2015-05-12 Per discussione Perini Matteo

Il 12/05/2015 10:56, Guido Dassori ha scritto:

Bella! Adoro!
Spero costi meno della pyboard, il cui limite maggiore è proprio il 
prezzo.

Beh dai...
27€ con wifi non è male HIMO.
Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il pitone e la robotica

2014-11-10 Per discussione Perini Matteo


Ma ho scritto in ML perché mi pare molto positivo poter condividere 
idee e esperienze...per cui se qualcuno ha già usat questi o altri 
strumenti...si faccia sotto :-)



io sto valutando questa board:
http://micropython.org/
Comperata ma non testata a fondo...
il tempo è quello che è!
Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] gui e seriale in contemporanea

2014-08-06 Per discussione Perini Matteo

Il 05/08/2014 22:57, Marco Giusti ha scritto:

Ero tentato di spiegarti passo passo il codice ma ho cambiato idea. Un
libro che ho studiato iniziava con questo incipit, qui parafrasato:
Con questo libro non voglio sollevare lo studente dal dover pensare, ma
piuttosto incoraggiarlo a pensare autonomamente.

Concordo


Ti rimando ad una faq[1] molto utile.

mi hai messo il riferimento ma non il link... potresti inviarmelo?
Grazie
Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] gui e seriale in contemporanea

2014-08-05 Per discussione Perini Matteo

Il 04/08/2014 18:18, Marco Giusti ha scritto:

Questo fa' sì che non appena il main loop non ha più niente da fare,
chiama la funzione do_something_with_the_line.

Ciao
grazie del suggerimento.
Sto provando in vari modi ma la situazione migliore che ho ottenuto è 
quella del codice sotto:
Funziona  (stampa la riga che arriva dalla seriale) se continuo a far 
fare qualcosa alla GUI altrimenti no.

Ho provato a forzare con cose tipo:

while gtk.events_pending():
gtk.main_iteration()

Ma non ho ottenuto miglioramenti.
Avete suggerimenti?

import gtk

import sys

import threading

import serial

#import gtk.glade

import glib

class Window:




def __init__(self):

builder = gtk.Builder()

builder.add_from_file(gui.glade)

self.win = builder.get_object(win)

self.win.connect(destroy, self.exit)

self.ssbutton=builder.get_object('ssbutton')

self.ssbutton.connect('clicked',self.on_ssbutton_clicked)

self.text=builder.get_object('testo')

self.text.set_text(CIAO)

self.title=builder.get_object('title')

self.title.set_text(test)

self.win.show_all()




def main(self):

gtk.main()

def exit(self,widget,data=None):

print 'quit'

gtk.main_quit()

sys.exit()

def on_ssbutton_clicked(self,event):

print str(self.ssbutton.get_active())

class Thread1 (threading.Thread):

def __init__(self, threadID, name):

threading.Thread.__init__(self)

self.threadID = threadID

self.name = name

def run(self):

win = Window()

win.main()

class Thread2 (threading.Thread):

def __init__(self, threadID, name):

threading.Thread.__init__(self)

self.threadID = threadID

self.name = name

def stampa(self,riga):

print riga

def run(self):

self.ser=serial.Serial(/dev/ttyACM0,9600)

while True:

self.a=self.ser.readline()

if self.a!=:

glib.idle_add(self.stampa, self.a)

while gtk.events_pending():

gtk.main_iteration()

thread1 = Thread1(1, GUI)
thread2 = Thread2(2, Serial)
thread1.start()
thread2.start()


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


Re: [Python] gui e seriale in contemporanea

2014-08-05 Per discussione Perini Matteo

Il 05/08/2014 16:25, Marco Giusti ha scritto:

Dici di usare le gtk3 e non le usi.
Hai ragione... ma ho cambiato in corso d'opera perchè mi è sembrato di 
capire che fosse più semplice con le gtk2

Ti suggerisco di usare idle_add
non lo usi.

questa però l'ho usata ;)
glib.idle_add(self.stampa, self.a

Adesso ti allego un canovaccio, vediamo se così va'
meglio.

Grazie mille mi sarà utilissimo... provo e vi faccio sapere.
Ciao
M

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


Re: [Python] gui e seriale in contemporanea

2014-08-05 Per discussione Perini Matteo

Il 05/08/2014 16:25, Marco Giusti ha scritto:

vediamo se così va'
meglio.

HO modificato il codice così...


import time
import threading
import serial
import gtk
import gobject


class Quit(Exception):
pass


class Gui:

def __init__(self, quit):
self.quit = quit
win = gtk.Window()
win.connect(destroy, lambda w: self.exit())
self.textbuffer = gtk.TextBuffer()
textview = gtk.TextView(self.textbuffer)
textview.set_editable(False)
sw = gtk.ScrolledWindow()
sw.add(textview)
win.add(sw)
win.set_default_size(300, 200)
win.show_all()

def exit(self):
self.quit.set()
gtk.main_quit()

def add_text(self, text):
enditer = self.textbuffer.get_end_iter()
self.textbuffer.insert(enditer, text)


class Thread2 (threading.Thread):

def __init__(self, name, gui, quit):
threading.Thread.__init__(self, name=name)
self.__gui = gui
self.__quit = quit


def run(self):
self.ser=serial.Serial(/dev/ttyACM0,9600)
while True:
line = self.ser.read()
gobject.idle_add(self.__gui.add_text, line)


if __name__ == __main__:
gobject.threads_init()
quit = threading.Event()
gui = Gui(quit)
t = Thread2(Serial, gui, quit)
t.start()
gtk.main()


e funziona bene!!
Grazie mille.
Provo a studiarmi un po il codice... perché ci sono delle cose che non 
capisco bene.

A breve ci risentiremo con nuove domande temo.
Ciao e grazie ancora.
Matteo.

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


[Python] gui e seriale in contemporanea

2014-08-04 Per discussione Perini Matteo

Ciao a tutti,
ho un problema che non riesco a risolvere bene.
Ho una semplice applicazione che deve visualizzare le stringhe che 
arrivano da una seriale (ttyUSB0 sono su linux).
Non riesco a fare in modo che ci sia serial.readline() sempre attivo 
sotto all'interfaccia grafica e che quando arriva qualcosa venga 
eseguita una funzione specifica.


Sto usando le GTK3
In particolare se resto in ascolto sulla porta seriale, l'interfaccia si 
freeza e non mi lascia fare altro.

Cosa mi consigliate di fare?
Devo usare i thread?

Ciao
Grazie
Matteo P
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] gui e seriale in contemporanea

2014-08-04 Per discussione Perini Matteo

Il 04/08/2014 15:08, Marco Giusti ha scritto:

thread o pattern asincrona. Normalmente ti consiglierei di utilizzare un
pattern asincrono ma vista la semplicità del programma, mi sento di
consigliarti i thread.

Ok.
Vediamo se ho capito bene...
In un thread metto la classe della gui e in un altro la lettura della 
seriale e poi passo i dati da un thread all'altro?
Il passaggio dei dati da un thread all'altro genera degli eventi che 
posso usare per richiamare delle funzioni?

Grazie dei consigli
Matteo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] licenza sw riscritto

2014-07-09 Per discussione Perini Matteo

Ciao a tutti,
ho riscritto in python un software open-source (java).
Naturalmente il codice è parecchio diverso ma alcune parti (formule 
utilizzate per i calcoli, funzioni, variabili) sono uguali e prese quasi 
pari-pari dal sw originale.


Come si si deve regolare con la licenza in questi casi?
La licenza originale è MIT.

Posso mettere la licenza GPL v2 o v3 nominando l'autore originale 
nell'intestazione?


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


[Python] incorporare codice open in un progetto (linee guida)

2014-06-16 Per discussione Perini Matteo

Ciao a tutti,
ho un po' di programmini scritti in parte da me e in parte con 
incorporato codice open (GPL) trovato qui e li.


Come posso ripubblicare il tutto?
Come si mettono le attribuzioni?

Ad esempio, ho utilizzato parte di uno script per inkscape con questa 
intestazione:


'''
Copyright (C) 2007 Aaron Spike  (aaron @ ekips.org)
Copyright (C) 2007 Tavmjong Bah (tavmjong @ free.fr)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Come posso pubblicare i miei progetti senza violare nessun diritto?

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


Re: [Python] Argomenti del giorno

2014-04-15 Per discussione Perini Matteo

Il 15/04/2014 10:47, Marco Ippolito ha scritto:

Ma è un caso che ci sono alcune discussioni su problematiche
caratteriali degli utenti, oppure è la norma?

Ciao ad entrambi.

Direi che non è per nulla la norma... anzi per mia esperienza questa è 
una lista molto bella e tollerante.

Siate fiduciosi ;)

Ciao
Matteo P

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


Re: [Python] Struttura dati per griglia interattiva

2014-03-20 Per discussione Perini Matteo

Il 19/03/2014 15:58, Balan Victor ha scritto:
Devo realizzare una griglia interattiva, in cui ad ogni click del 
mouse cambi lo stato della cella da 0 a 1 (ad esempio), e mi conti 
quante celle sono a 1 sia nella riga che nella colonna.
Magari dico cavolate ma io, se i valori della griglia fossero solo 
numerici, punterei ad un array numpy.


griglia=np.zeros((righe,colonne))


def click(x,y):
   griglia[x,y]=1-griglia[x,y] #considerando il ciclo tra 0 e 1
   sumx=griglia[x,:].sum()
   sumy=griglia[:,y].sum()

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


Re: [Python] info su db

2014-03-05 Per discussione Perini Matteo

Il 05/03/2014 17:21, Daniele Varrazzo ha scritto:


Dovresti studiare qualcosa di molto elementare sui database: non puoi 
replicare informazioni su nome e cognome ad ogni strisciata, 
altrimenti è un log non relazionale, tanto vale tu lo scriva in un 
file. Le informazioni sugli utenti e le strisciate devono essere in 
due tabelle diverse.


Separare nome è cognome è un'idea regolare, ma un po' limitata (ho 
sempre l'esempio del mio collega che non ha il cognome). Avere sia 
data ingresso che data uscita nello stesso record è giustissima: se un 
record rappresenta un periodo devono essere riportati sia inizio che 
fine, usare il record di prima come inizio porta a complicazioni 
terribili. L'informazione è dentro può essere dedotta dal fatto che 
una presenza abbia la data uscita nulla.


Peraltro un utente non è collegato ad una lettura: un tag lo è, quindi 
secondo me dovresti avere come minimo:


Utente: id, nome, cognome, indirizzo ecc..
Tag: id (del db, forse non necessario), identificativo (quello che il 
lettore legge), emesso il, ritirato il, motivo del ritiro ecc.
Utente per tag: quale utente, quale tag, da quando l'ha avuto, fino a 
quando l'ha avuto.

Lettura: id, quale tag, quale lettore, a che ora.
Presenza: id lettura in, id lettura out.
Lettore: id, ...tutte le informazioni che servono

Nota che una lettura è un evento imprescindibile: quella cosa è 
successa. Una presenza è una policy: mette in relazione due letture 
nel caso più normale ma potrebbero succedere cose strane: tipo uno che 
entra ed esce in modo imprevisto (in barella? o semplicemente il 
lettore era rotto?) per cui mi sembra giusto separare le Letture (da 
registrare) dalle Presenze (da ricostruire). Potresti anche avere 
quello che entra, passa il tag a quello dietro e quello entra anche 
lui: è vietato da una policy, non dalla fisica

Grazie a tutti delle risposte,
non ho risposto subito perché ho passato il pomeriggio a studiare ;)

Ho capito che devo fare svariate tabelle collegate tra loro e che 
contengano tutti i dati.

Intanto farò qualche prova poi ritornerò con le domande.
Ciao
Matteo

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


Re: [Python] python SQL?

2014-02-16 Per discussione Perini Matteo

Il 16/02/2014 14:04, Manlio Perillo ha scritto:
Perchè, in questo caso specifico, un ORM è una bestia molto complessa, 
e consigliarlo ad uno che adesso sta cominciando con i database 
relazionali non è una buona cosa.

Ciao,
sto seguendo con interesse ma il livello si è alzato un po' ;)

Cerco di spiegarvi cosa vorrei fare.
Per adesso si tratta di una piccola  applicazione  per tener traccia di 
accessi e pagamenti per una associazione.


Scenario:
Qualche centinaio di utenti avranno una carta RFID (codice univoco) con 
la quale potranno accedere alla sala dell'associazione.
Ad ogni codice nel db corrisponderà l'anagrafica, numeri di telefono 
ecc, una decina di cose specifiche dell'associazione.
Oltre a questo, ogni ingresso/uscita andrebbe immagazzinato da qualche 
parte.
All'ingresso vi sarà anche un controllo se l'utente è in regola con i 
pagamenti delle quote associative.
Gli utenti possono essere di vario tipo (studenti/Adulti/pensionati) con 
vari tipi di possibile associazione (mensile/annuale/n°di ingressi).
Tutti i controlli verranno fatti via sw appoggiandomi ad un db (sto 
propendendo per mongodb... ma non sono ancora sicuro)


Ho visto un po' di differenze tra db relazionali e documentali e penso 
che per il mio caso non faccia molta differenza quale uso. (il numero di 
campi sarà fisso)
Anche i tempi delle varie query penso siano insignificanti in entrambi i 
casi visto che si parla di qualche migliaio di dati.
Non mi è invece molto chiaro come posso immagazzinare tutte le date/ora 
degli ingressi e uscite? suggerimenti?


Come facilità d'uso cosa mi consigliate? mongodb? SQLite?

Dimenticavo... l'accesso al db avverrà sempre dallo stesso sw ma in due 
modi distinti, tramite la gui con richiesta dell'utente e, in automatico 
quando un utente passa la tessera con l'RFID, servirà prevedere thread 
per questo?


Scusate se non ho chiarito prima questi punti che avrebbero potuto 
aiutarvi ad aiutarmi ma da non avevo proprio idea di come partire.


Grazie dell'aiuto (anche di domenica)
Ciao
M.


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


[Python] python SQL?

2014-02-15 Per discussione Perini Matteo

Ciao a tutti,
mi trovo ad affrontare la mia prima applicazione che fa uso di database.
Quale mi consigliate?
E' da un po' che seguo questa lista e mi sembra che quasi tutti siate 
orientati verso PostgreSQL... sbaglio?
Ho anche dato un occhiata in giro per vedere che libreria usare e ne ho 
viste di molti tipi.

Psycopg1, Psycopg2, bpgsq ?

Accetto qualsiasi consiglio considerate anche che è il mio primo 
approccio ai db ma che potrei averne bisogno anche in futuro.

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


Re: [Python] python SQL?

2014-02-15 Per discussione Perini Matteo

Il 15/02/2014 15:48, Pietro Zambelli ha scritto:

Dipende un po' da cosa devi fare, se è sempre per l'applicazione con
RFID,

Si

  forse potresti optare anche per qualcosa non SQL tipo MongoDB:

http://api.mongodb.org/python/current/tutorial.html

Grazie Pietro...
mentre guardo meglio il link mi sapreste dire che differenza c'è tra un 
db SQL e un altro?

Solo il linguaggio?
Potenzialità, limiti?
Grazie
Ciao
M.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] python SQL?

2014-02-15 Per discussione Perini Matteo

Il 15/02/2014 15:55, Francesco Stablum ha scritto:
ti consiglio di usare SQLite: http://www.sqlite.org/ 
http://docs.python.org/2/library/sqlite3.html


Dal tuo post non si capisce perche' SQL sia essenziale.
Dovete perdonarmi ma sono completamente niubbio sul tema... ho sempre 
sentito parlare dei db che ho citato sopra ma sto cominciando adesso a 
farmi un idea.
Userò, almeno all'inizio, il db solo in locale e solo da python con 
esportazione in csv (o simili).



Nel caso non lo fosse ti consiglio questi DBMS:
* MongoDB http://www.mongodb.org/ ,
* UnQLite promette bene: http://unqlite.org/ 
https://pypi.python.org/pypi/unqlitepy
Ora guardo mongodb che mi sembra, per quello che devo fare, la soluzione 
migliore...  poi arriverò con un sacco di altre domande.

Sono comunque sempre ben accetti consigli, spiegazioni, suggerimenti.
Grazie

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


[Python] Leggere tag RFID con PySerial

2014-02-13 Per discussione Perini Matteo

Ciao a tutti,
ho questo lettore RFID:
http://www.apromix.it/product.asp?IdProdotto=999

Da linux mi viene creato il dev ttyUSB0

Ho scritto il seguente codice:

import serial

if __name__ == '__main__':

buff = ''

ser=serial.Serial('/dev/ttyUSB0',125000,timeout=0)

while True:

a=ser.read(ser.inWaiting())

buff = buff + a

print a

print len(buff)

if '\n' in buff:

lines = buff.split('\n')

last_received = lines[-2]

print last_received

Il tutto sembra funzionare nel senso che qualcosa arriva tramite la seriale.
len(buff) aumenta ogni volta che avvicino la carta ma con print a non mi 
viene mostrato alcun numero/carattere.

Sapete dirmi come decodificare quello che arriva?
Sembra non arrivare mai un /n.
Grazie per ogni aiuto.
Ciao
Matteo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Perini Matteo

Il 19/09/2013 00:18, Vittorio Spina ha scritto:

ciao,
che sappiate esiste un modo più elegante per evitare quello che segue?
x = UnCertaFunzioneCheRitornaINT()
if x67: x=67
if x-67: x=-67


Ciao,
non so se hai contemplato la possibilità di usare moduli esterni ma io 
uso spesso:

numpy.clip

Molto utile su arrai/liste ma dovrebbe funzionare.
Ciao
M.


___
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 Perini Matteo

Il 12/09/2013 20:50, Marco Fochesato ha scritto:


Io uso Geany.
Buona serata a tutti!



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


[Python] problema di licenze...

2013-09-08 Per discussione Perini Matteo

Ciao a tutti,
una semplice domanda per la lista.
Vorrei rilasciare del codice in con licenza open ma al suo interno utilizzo:

import gtk #  GNU LGPL
import sys  # Copyright © 2001-2013 Python Software 
Foundation. All rights reserved.
import subprocess   # Copyright © 2001-2013 Python Software 
Foundation. All rights reserved.

import numpy as np  # Copyright http://www.numpy.org/license.html
import pygame   # GPL
import Image,ImageDraw  # Copyright © 1997-2011 by Secret Labs AB   
Copyright © 1995-2011 by Fredrik Lundh 
http://www.pythonware.com/products/pil/license.htm
import os   # Copyright © 2001-2013 Python Software 
Foundation. All rights reserved.
import time # Copyright © 2001-2013 Python Software 
Foundation. All rights reserved.

import cv   # BSD
import scipy# BSD (SciPy)

Qualcuno mi potrebbe dare una dritta su che licenza devo/posso 
utilizzare in un contesto simile.
Sono rimasto stupito di vedere sul sito di numpy ad esempio è riportata 
[0] BSD License ma se clicco sul link License [1] trovo:

Copyright © 2005-2013, NumPy Developers. All rights reserved.


[0] http://www.numpy.org/index.html
[1] http://www.numpy.org/license.html

Mi sono perso qualche cosa?
Comunque la questione fondamentale è come posso rilasciare il mio codice 
che include le librerie sopra  e con che licenze posso farlo.

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


Re: [Python] [OT] Coordinate geografiche pdi e poligoni

2013-04-01 Per discussione Perini Matteo

Il 01/04/2013 21:16, Diego Barrera ha scritto:

Scusate l'ot, comunque poi risolvero' tutto in python :)
Ho una anagrafica di indirizzi georeferenzati con latitudine e 
longitudine;
ho l'intenzione di creare delle aree geografiche per suddividere i 
vari indirizzi.


1. definita un'area geografica come un poligono i cui vertici sono 
identificati
da latitudine e longitudine, come verifico se un punto e' all'interno 
del poligono?


2. cosa caspita devo cercare su google per documentarmi sull'argomento 
senza

impazzire (ho sprecato una pasquetta ;) ) ?

Mi scuso di nuovo per l'OT, ma sicuramente qualcuno avra' avuto a che 
fare

con un problema simile e non so veramente dove sbattere la testa.
Ciao diego



Ciao,
io per le immagini ho usato:
import matplotlib.nxutils as nx
che fa parte della libreria matplotlib

nx.points_inside_poly(points, verts)

è il comando che ti serve (penso)

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