Re: [Python] confronto nan dentro le tuple

2022-12-11 Per discussione Marco De Paoli
Il giorno dom 11 dic 2022 alle ore 15:33 Andrea D'Amore  ha
scritto:

> On Fri, 9 Dec 2022 at 19:20, Marco De Paoli  wrote:
>
> > in realtà la cosa è anche un po' più subdola di così, infatti istanze
> diverse di nan ... sono diverse!
>
> > >>> import math
> > >>> math.nan is math.nan  # OK, identity
> > True
> > >>> float("nan") is float("nan")  # ... OOOK, different instances!
> > False
>
> Questo però ci sta, al netto delle ottimizzazioni di CPython quando
> inizializzo nuove istanze mi aspetto oggetti che siano effettivamente
> diversi
>
> >>> int("123456789") is int("123456789")
> False
>

sì, vero, è coerente

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


Re: [Python] confronto nan dentro le tuple

2022-12-09 Per discussione Marco De Paoli
Il giorno gio 8 dic 2022 alle ore 06:37 Andrea D'Amore  ha
scritto:

> On Wed, 7 Dec 2022 at 18:40, Marco De Paoli  wrote:
> > Mi viene il dubbio che nel confronto tra tuple venga valutata una
> identità tra oggetti... ma, al momento, non riesco ad approfondire la
> questione
>
> Il confronto tra sequenze usa `is` come scorciatoia invece di `==`.
>
> https://docs.python.org/3/reference/expressions.html#comparisons
> """Sequences compare lexicographically using comparison of
> corresponding elements. The built-in containers typically assume
> identical objects are equal to themselves. That lets them bypass
> equality tests for identical objects to improve performance and to
> maintain their internal invariants."""


è vero, grazie

in realtà la cosa è anche un po' più subdola di così, infatti istanze
diverse di nan ... sono diverse!

>>> import math
>>> math.nan is math.nan  # OK, identity
True
>>> float("nan") is float("nan")  # ... OOOK, different instances!
False

Dalla regia (grazie CM) mi segnalano questo riferimento:
https://bugs.python.org/issue21873#msg221608

e questo esempio:

>>> set([nan, nan])
{nan}
time: 19 ms (started: 2022-12-07 19:14:16 +01:00)
>>> set([float('nan'), float('nan')])
{nan, nan}
time: 8.54 ms (started: 2022-12-07 19:14:34 +01:00)

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


[Python] confronto nan dentro le tuple

2022-12-07 Per discussione Marco De Paoli
ciao lista,
come va?

una domanda su math.nan

Il valore math.nan è un non-valore quindi è corretto che non sia
considerato uguale neanche a se stesso.
https://docs.python.org/3/library/math.html#math.nan

La mia sorpresa è che invece nei confronti tra tuple i nan vengono
considerati uguali
Esempio:
>>> from math import nan
>>> nan == nan  # False as expected
False
>>> (10, nan) == (10, nan)  # ... WOW
True

Mi viene il dubbio che nel confronto tra tuple venga valutata una identità
tra oggetti... ma, al momento, non riesco ad approfondire la questione

... voi ne sapete di più? (non ho dubbi! ;-) )

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


Re: [Python] Azure functions

2022-10-20 Per discussione Marco De Paoli
ciao Giovanni,

Il giorno mer 19 ott 2022 alle ore 14:30 Giovanni Porcari <
giovanni.porc...@softwell.it> ha scritto:

> Possibilmente. Mi arroccherei su quello :D
>

... intendi sul fatto che non ci sarebbe lxml ;-)

ad ogni modo pare che l'offerta al cliente la si farà "per il caso
peggiore" (in cui qualcuno, che non sarei io, dovrà riscrivere tutto in C#)

Entro quando il lavoro sarà effettivamente da fare io un'occhiata ad
IronPython ho intenzione di darla

Mi viene in mente che potrebbe tornarmi utile anche per un'altra vecchia
utility che avevo fatto e che gira come servizio-Windows.
Al momento, per utilizzarla, richiede che installino python e pywin32.
Infatti, non avevo mai avuto tempo di fare un packaging per Windows (e
avevo sempre pensato che non fosse banale fare un packaging di qualcosa che
ha dentro pywin32 con pythonservice.exe).

Potrei valutare IronPython: che magari 1) mi evita le pywin32 e 2) si
occupa lui di fare il build di un exe (che dipende da .net, ok) e 3) mi
permette di provarlo, per sommi capi, anche su linux con mono

Qualcuno ha esperienze in merito?

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


Re: [Python] Azure functions

2022-10-18 Per discussione Marco De Paoli
Il giorno mar 18 ott 2022 alle ore 17:40 Nicola Gramola <
nicola.gram...@gmail.com> ha scritto:

> Hai provato a vedere se riesci a “compilare” con IronPython. Non penso sia
> molto aggiornato ma è un tentativo
>

sì, grazie, verifico
anche se sembra un po' un problema disporre di lxml in questo caso...
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Azure functions

2022-10-18 Per discussione Marco De Paoli
ciao a tutti,
domanda niubba...

ho del codice python (... ovviamente! visto: 1. la lista a cui mi rivolgo e
2. le mie radicate preferenze personali ;-) )

ora, questo codice dovrebbe girare su un portale Azure
E mi dicono che deve essere ...

"un tool unico possibilmente in una tecnologia .Net (leggi C#/NET6).
Probabilmente sarà parte di una Azure Function o di una API, quindi,
sarebbe comodo fosse sotto forma di una libreria e/o pacchetto NuGet."

arghh! potreste mica darmi qualche dritta?
... non sono precisamente entusiasta della prospettiva di dover riscrivere
il tutto in C#

grazie,
Marco

P.S. questo codice preesistente avrebbe dipendenza dal pacchetto lxml
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] import error.

2022-10-13 Per discussione Marco De Paoli
ciao Gabriele

Il giorno gio 13 ott 2022 alle ore 21:36 Gabriele Battaglia <
iz4...@libero.it> ha scritto:

> Ciao, questa sera mi è comparso un errore che non avevo ancora incontrato.
> Avevo una riga, ad inizio script, con la quale importavo 4 moduli: 3 in
> una istruzione import e uno in una istruzione from ... import.
>
> isort mi ha detto che non andava bene, ma perchè? Io l'ho sempre fatto e
> Python non si è mai lamentato. Ho applicato il fix automatico e isort mi
> ha riscritto le righe come segue:
>
> import pickle
> import random
> import time
> from GBUtils import key
>
> Domanda, che è più che altro una curiosità: cosa c'è di male ad
> importare i primi 3 moduli separandoli con una , in una singola
> istruzione import?
>

niente di male
è però considerato più consistente e leggibile importarli distintamente,
vedi la PEP8

https://peps.python.org/pep-0008/#imports

la stessa PEP8 dice comunque esplicitamente:
"However, know when to be inconsistent – sometimes style guide
recommendations just aren’t applicable. When in doubt, use your best
judgment"

https://peps.python.org/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds

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


Re: [Python] Spam dalla mailing-list

2022-07-28 Per discussione Marco De Paoli
Il giorno gio 28 lug 2022 alle ore 10:12 Marco Beri 
ha scritto:

> On Thu, 28 Jul 2022 at 10:06, Marco Giusti  wrote:
>
>> Salve a tutti,
>>questa mattina ho risposto a due email e per due volte ho ricevuto
>> questo messaggio. C'e' niente che si puo' fare?
>> Allogo uno screenshot dell'email. Credo che le mie email avessero il mio
>> indirizzo come reply-to. In questa email l'ho tolto.
>>
>
> Marco,
> sai che io non le ho ricevute? Anche nel folder spam non le ho trovate.
>
> Qualcun altro le ha invece ricevute?
>

no, confermo che non le ho ricevute neanche io

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


Re: [Python] throw ad un generatore: perché non riparte dall'inizio?

2022-07-28 Per discussione Marco De Paoli
cavolo, grazie mille a entrambi!
questa lista rimane un gran bel posto

... a proposito, mi chiamo Marco pure io, mi ero dimenticato di firmarmi,
Marco De Paoli

Il giorno gio 28 lug 2022 alle ore 09:41 Marco Beri 
ha scritto:

> Se invece di g.throw(Exception("BOOM")) scrivi print(
> g.throw(Exception("BOOM")))
>
> Ritroverai il tuo "A" :-)
>

ottimo!
ed ha pure senso
viva python :-)
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] throw ad un generatore: perché non riparte dall'inizio?

2022-07-28 Per discussione Marco De Paoli
ciao lista!
ho una domanda sui generatori
Mi farebbe molto comodo usare la possibilità di mandare una eccezione ad un
generatore: ma mi trovo con un comportamento imprevisto
Qui sotto trovate un frammento di codice che riproduce una sorta di "caso
minimo" di quella che mi sembra una anomalia
Se avete voglia di provarlo credo che il codice sia più o meno
autoesplicativo.
Quello che mi lascia perplesso è: perché il generatore, dopo aver gestito
l'eccezione, non riparte dal restituire il valore "A"?

---><--- begin test_gen.py ---><---
def gen():
while True:
try:
yield "A"
yield "B"
yield "C"
except Exception as ex:
print("catched exception", ex)


g = gen()
you_can_specify_any_number_of_steps = 3
for idx in range(you_can_specify_any_number_of_steps):
print("result:", g.send(None))
print("throw...")
g.throw(Exception("BOOM"))
print("result:", g.send(None), "*** I was expecting A and I get B, why?!?
***")
print("result:", g.send(None))

---><--- end test_gen.py ---><---
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] sendall su socket no blocking

2021-10-23 Per discussione Marco De Paoli
ciao a tutti,
da alcune prove mi pare che il sendall spedisca effettivamente tutto il
buffer anche su socket che abbiano setblocking(False)

Però non sono sicuro che sia un comportamento sempre garantito su tutte le
piattaforme

La documentazione non si esprime in merito
https://docs.python.org/3/library/socket.html#socket.socket.sendall

Qui si dice che la sendall dovrebbe essere usata solo con socket blocking:
https://stackoverflow.com/questions/6240737/python-socket-sendall-function
(c'è un riferimento dangling a sorgenti evidentemente obsoleti)

Ho visto i sorgenti del branch "main" e mi pare che invece la sendall
spedisca sempre tutto...
https://github.com/python/cpython/blob/main/Modules/socketmodule.c

ad esempio qui
https://github.com/python/cpython/blob/main/Modules/socketmodule.c#L925

Però diciamo che al sabato sera non mi sento abbastanza lucido da dirimere
la questione da solo ;-)

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


Re: [Python] struct unpack di un intero

2021-10-21 Per discussione Marco De Paoli
ciao Roberto,

Il giorno gio 21 ott 2021 alle ore 11:15 Roberto De Ioris 
ha scritto:

> Ciao, perche' di default viene rispettato l'allineamento che il dato
> dovrebbe avere in memoria se fosse una struttura c:
>
> https://docs.python.org/3/library/struct.html#struct-alignment
>
> Roberto De Ioris
>

infatti se poi facevo l'unpack come intero a partire dal quel byte,
funzionava
mi sfuggiva questo particolare di rispettare il layout dell'intera struct C
grazie mille!

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


[Python] struct unpack di un intero

2021-10-21 Per discussione Marco De Paoli
ciao a tutti!
ho un problema con struct.unpack e non capisco cosa sto sbagliando...

>>> struct.unpack("i", b'\x03\x00\x00\x00')  # OK!
(3,)
>>> struct.unpack("ih", b'\x03\x00\x00\x00\x04\x00')  # OK!
(3, 4)
>>> struct.unpack("ihi", b'\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00')  #
ARGHHH
Traceback (most recent call last):
  File "", line 1, in 
struct.error: unpack requires a buffer of 12 bytes

Perché mai se ne aspetta 12? Dovrebbero bastare i 10 che ci sono nel buffer!

Mi aspettavo:
>>> struct.unpack("ihi", b'\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00')
(3, 4, 4)

Cosa sto sbagliando?

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


Re: [Python] Argomenti funzione posizionali e opzionali

2020-12-02 Per discussione Marco De Paoli
Il giorno mer 2 dic 2020 alle ore 14:50 Daniele Zambelli <
daniele.zambe...@gmail.com> ha scritto:

> Quindi la soluzione che proporrei oggi sarebbe:
>
> def modify_signature_id(content, signature):
> < fa qualcosa>
>
> def modify_signature_name(content, signature):
> 
>
> Tanto chi chiama la funzione sa se se ha a disposizione un id o un name.
>

Sono daccordo

... volendo poi si potrebbe anche valutare una cosa del genere:

def modify_signature_id(content, signature):
print("modify_signature_id", signature)

def modify_signature_name(content, signature):
print("modify_signature_name", signature)


# utilizzo base
modify_signature_id("cc", "sample_id")
modify_signature_name("cc", "sample_name")

# utilizzo parametrico
modify_signature = lambda s_type:
globals()["modify_signature_{}".format(s_type)]
modify_signature("id")("cc", "sample_id")
modify_signature("name")("cc", "sample_name")

# utilizzo parametrico con f-strings
modify_signature = lambda s_type: globals()[f"modify_signature_{s_type}"]
modify_signature("id")("cc", "sample_id")
modify_signature("name")("cc", "sample_name")

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


Re: [Python] uwsgi in docker: come interpretare questi log?

2020-09-15 Per discussione Marco De Paoli
Il giorno mar 15 set 2020 alle ore 13:09 Alessandro Dentella <
sandro.dente...@gmail.com> ha scritto:

> PS: esiste ancora una lista uwsgi? io non la trovo, ma in documentazione
> dicono
> di scrivere in lista uwsgi...
>

uw...@lists.unbit.it non è più attiva

Roberto De Ioris in proposito dice:
"it has been deactivated months ago. You can open issues here or on
stackoverflow. We are evaluating a google group btw."
https://github.com/unbit/uwsgi/issues/2230
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Creazione lista da Listbox

2020-05-26 Per discussione Marco De Paoli
Il giorno lun 25 mag 2020 alle ore 19:20 Marcello  ha
scritto:

> Salve a *
>
> Ho creato una Listbox con tkinter (e fino a qui non ho avuto problemi)
> adesso quello che non riesco a fare è creare una lista per ogni riga che
> inserisco nel text_comandi.
>
> esempio, se scrivo:
> aaa
> bbb
> ccc
>
> dovrei ricavare una lista
> ['aaa','bbb','ccc']
>

forse ti fa comodo split

>>> k = """
... aaa
... bbb
... ccc"""
>>> k.split()
['aaa', 'bbb', 'ccc']

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


Re: [Python] Domanda su istruzione che coinvolge oggetti di Classe: country cos'è ?

2020-05-21 Per discussione Marco De Paoli
Il giorno gio 21 mag 2020 alle ore 17:18 maria teresa panunzio <
mariateresa.panun...@yahoo.it> ha scritto:

>
>
> Il giovedì 21 maggio 2020, 17:07:38 CEST, Marco De Paoli <
> depao...@gmail.com> ha scritto:
>
>
>
>
> Il giorno gio 21 mag 2020 alle ore 16:51 maria teresa panunzio <
> mariateresa.panun...@yahoo.it> ha scritto:
>
> Buonasera,
>
> Vorrei chiedere un aiuto sulla comprensione
> della seguente istruzione
> canada = country.Country('Canada', 34482779, 9984670)
>
> Si tratta di un esercizio sulle classi, dove Country è una delle classi
> mentre Continent è l'altra.
> L'istruzione che ho riportato ha lo scopo di assegnare i valori ai paesi
> che, in questo caso, fanno parte del continente "North America"
>
> Non capisco cosa sia "country" o meglio cosa devo aggiungere al mio codice
> nella definizione della classe "Continent" affinchè l'istruzione riportata
> possa essere eseguita senza errori.
>
>
> country probabilmente è un modulo importato precedentemente e che contiene
> la definizione della classe Country
>
> Esempio file country.py (modulo contenente la definizione della classe):
> class Country:
> def __init__(self, name):
> self.name = name
>
> def __str__(self):
> return "Country: " + self.name
>
> Esempio file main.py (file principale):
>
> import country
>
> canada = country.Country("Canada")
>
> print(canada)
>
> Spero di essere stato chiaro, se no chiedi pure
> Per semplicità, per iniziare, ammettiamo che i due file debbano essere
> nella stessa directory (in realtà c'è una serie di path in cui il file
> country.py può trovarsi)
>
> ciao,
> Marco
>
>
>
> Grazie, Marco
> (sto scrivendo la mia risposta in maniera corretta?)
>

ok!


> non ci avevo pensato perchè io volevo mettere tutto in un unico file.Ora
> che ho fatto diversamente, mi quadra!
>

ottimo!

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


Re: [Python] Domanda su istruzione che coinvolge oggetti di Classe: country cos'è ?

2020-05-21 Per discussione Marco De Paoli
Il giorno gio 21 mag 2020 alle ore 16:51 maria teresa panunzio <
mariateresa.panun...@yahoo.it> ha scritto:

> Buonasera,
>
> Vorrei chiedere un aiuto sulla comprensione
> della seguente istruzione
> canada = country.Country('Canada', 34482779, 9984670)
>
> Si tratta di un esercizio sulle classi, dove Country è una delle classi
> mentre Continent è l'altra.
> L'istruzione che ho riportato ha lo scopo di assegnare i valori ai paesi
> che, in questo caso, fanno parte del continente "North America"
>
> Non capisco cosa sia "country" o meglio cosa devo aggiungere al mio codice
> nella definizione della classe "Continent" affinchè l'istruzione riportata
> possa essere eseguita senza errori.
>

country probabilmente è un modulo importato precedentemente e che contiene
la definizione della classe Country

Esempio file country.py (modulo contenente la definizione della classe):
class Country:
def __init__(self, name):
self.name = name

def __str__(self):
return "Country: " + self.name

Esempio file main.py (file principale):

import country
canada = country.Country("Canada")
print(canada)

Spero di essere stato chiaro, se no chiedi pure
Per semplicità, per iniziare, ammettiamo che i due file debbano essere
nella stessa directory (in realtà c'è una serie di path in cui il file
country.py può trovarsi)

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


Re: [Python] #OT Compilazione C crossplatform.

2020-04-18 Per discussione Marco De Paoli
Il giorno sab 18 apr 2020 alle ore 08:56 Gabriele Battaglia <
iz4...@libero.it> ha scritto:

> Buongiorno a tutti.
> Mi scuso per l’OffTopic.
>
> Un amico ha creato un software molto utile a chi non vede e gioca a
> scacchi.
> Questo programma, scritto in C e privo di interfaccia grafica, che
> comunica via console, si sta diffondendo ormai nelle comunità scacchistiche
> di tutto il mondo.
> Il problema è che taglia fuori tutti gli utenti non-Windows.
> La mia domanda è, dato che viene usata solo la console, quindi non c’è
> coinvolgimento di librerie grafiche, non sarebbe possibile chiedere al
> compilatore di compilare i sorgenti anche per MacOS?
> Mi rendo conto dell’ingenuità della domanda, ma non ho alcuna conoscenza
> di come funzioni il C.
>

in linea di principio sì.
Tuttavia in realtà Windows ha tante altre differenze rispetto alle
piattaforme *nix/bsd/posix : gestione del filesystem, gestione delle
stringhe ... perfino gestione del main (su Windows, di base c'è WinMain)

Quindi la risposta è: dipende. Dipende come il programmatore ha strutturato
i sorgenti
Anche il sistema di build è potenzialmente diverso
Ha usato make? CMake? un progetto/soluzione Visual Studio? .. nmake?

Insomma, paradossalmente le librerie grafiche potrebbero non essere il
problema maggiore: un progetto che usi wxWidgets o Qt potrebbe funzionare
su piattaforme diverse senza grossi problemi

In generale progetti che siano multi-compilatore e/o multi-piattaforma
richiedono uno sforzo maggiore e non è detto che il programmatore faccia
questa scelta

Senza vedere i sorgenti completi del progetto è difficile sapere se sia
multi-piattaforma ed, eventualmente, quanto sforzo possa richiedere il
porting
Si tratta di un progetto open-source?

Comunque in ambito python (... e quindi automaticamente multipiattaforma!
:-) ) ti segnalo questo
https://github.com/thomasahle/sunfish

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


Re: [Python] Variabile non letta (RISOLTO)

2020-04-16 Per discussione Marco De Paoli
Il giorno gio 16 apr 2020 alle ore 18:33 Mr.Dob  ha
scritto:

> RISOLTO
>
> In primis un GRAZIE a Marco De Paoli, mi ha aiutato a ragionare e darmi il
> giusto input
>

prego
bene! mi fa piacere che hai combinato

giusto qualche nota, se vuoi tenerne conto...


> ecco il listato funzionante
>
>  #!/usr/bin/env python
>
> import time
> import serial
> import os
> import subprocess
>
> ser = serial.Serial(
>
>  port='/dev/ttyUSB0',
>  baudrate = 9600,
>  parity=serial.PARITY_NONE,
>  stopbits=serial.STOPBITS_ONE,
>  bytesize=serial.EIGHTBITS,
>  timeout=1)
> counter=0
> hmi=b'\xFF\xFF\xFF'
> cpufreq=subprocess.check_output("cat
> /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", shell=True)
>

rimango dell'idea che puoi evitarti il subprocess.check_output (che lancia
addirittura un altro processo per fare il cat)
e leggere direttamente il file con una open e poi una read di python
https://docs.python.org/3/library/functions.html#open

cpu=""
> cpu += cpufreq.decode()
> cpu='''"'''+cpu+'''"'''
> buffer=("t55.txt={}".format(cpu)).encode()
>

le 4 istruzioni precedenti puoi semplificarle se vuoi giocarci un po'...


> ser.write(buffer)
> ser.write(hmi)
>

comunque bene!
complimenti!

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


Re: [Python] Variabile non letta

2020-04-16 Per discussione Marco De Paoli
Il giorno gio 16 apr 2020 alle ore 17:23 Mr.Dob  ha
scritto:

> Raspberry con linux installato.
> Ho un display seriale, collegato con un convertitore usb/seriale collegato
> tramite porta usb del raspberry.
> Nel display ho realizzato un firmware tramite il tool Nextion editor ad
> oggetti.
> Ho inserito un oggetto text nominato t55.txt dove, via seriale gli passo
> ser.write(b't55.txt="CIAO"')
> Sul display mi visualizzerà la scritta CIAO.
> Se voglio utilizzare una variabile al posto del CIAO questa non viene
> passata.
> Spero di essere stato esaustivo.
>

ok, hai fatto qualche prova con quello che ti ho scritto?

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


Re: [Python] Variabile non letta

2020-04-16 Per discussione Marco De Paoli
ciao,
fammi capire...

Il giorno gio 16 apr 2020 alle ore 16:41 Mr.Dob  ha
scritto:

> Saluto a tutti,
>
> ho un Raspberry dove ho collegato via seriale un display Nextion.
>
> ho realizzato questo script in Python
>
> 
>
>   #!/usr/bin/env python
>
> import time
> import serial
> import os
> import subprocess
>
> ser = serial.Serial(
>
>   port='/dev/ttyUSB0',
>   baudrate = 9600,
>   parity=serial.PARITY_NONE,
>   stopbits=serial.STOPBITS_ONE,
>   bytesize=serial.EIGHTBITS,
>   timeout=1)
> counter=0
> hmi=b'\xFF\xFF\xFF'
>

il tuo problema è questa riga qui?


> #cpufreq=subprocess.check_output("cat
> /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", shell=True)
>

ossia non riesci a leggere la frequenza della CPU?


> cpufreq="CIAO"
>

oppure questa parte?


> #buffer=(b't55.txt= + str(cpufreq).encode()')
> buffer=(b't55.txt=cpufreq')
>

che però ad occhio non mi pare vada bene
visto che nel buffer non viene messo il *valore* della variabile, bensì il
suo nome

ser.write(buffer)
> ser.write(hmi)
>
> *
>
> Il problema che la variabile "cpufreq" non viene letta.
>
> buffer=(b't55.txt=cpufreq') t55.txt è un oggetto che risiede nel display
> Nextion a cui devo passare il valore della variabile "cpufreq"
>
> Altresì se passo buffer=(b't55.txt="CIAO"') funziona
>
> Ho letto tante di quelle info senza trovare la soluzione.
>

ad occhio mi pare che tu abbia due problemi:
a. la lettura della frequenza della cpu
b. la scrittura nel buffer della seriale

Ti do due spunti:
a. fai in modo di leggere il
file  /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq con il comando
open di python (non con "cat")
b. crea il buffer a partire dal valore della variabile, esempio:
>>> cpufreq = 10
>>> ("t55.txt={}".format(cpufreq)).encode()
b't55.txt=10'

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


Re: [Python] Fare esami su Python

2020-04-10 Per discussione Marco De Paoli
Il giorno ven 10 apr 2020 alle ore 11:31 Gianfranco Durin 
ha scritto:

> Buongiorno a tutti,
> ho bisogno di una consulenza...
>
> Sto facendo un corso, anzi due (Triennale e Magistrale) alla facoltà di
> Economia a Torino e nel caos dei corsi online ora c'è il problema di fare
> gli esami a distanza. Il corso è interamente impostato su i notebook di
> jupyter e così vorrei rimanere anche per l'esame.
> Per gli studenti della triennale posso sicuramente fare una sorta di test
> a crocette (anche se l'idea non mi fa impazzire) ma per quelli della
> magistrale l'idea è di analizzare database con pandas e fare
> analisi statistiche, plot e quant'altro e poi di valutare una serie
> temporale, fare medie mobili, volatilità etc.
> C'è qualcuno di voi che a qualche esperienza di esami a distanza di questo
> tipo? O c'è una piattaforma che potrei utilizzare?
> Il corso è interamente salvato su moodle e c'è anche la possibilità di
> costruire gli esami con quiz, ma aiuto mi sembra una cosa da pazzi.
>
> Grazie per l'aiuto!
>

non so se può esserti di aiuto nel tuo caso...
ma puoi valutare anche "Google Collaboratory"
https://colab.research.google.com/notebooks/intro.ipynb

nessun bisogno che lo studente installi alcunchè sul suo PC
Si tratta di una sorta di notebook (jupyter) online, che salva i file ipynb
su Drive
al momento può essere usato gratuitamente per chiunque abbia un account
google

Gli stundeti possono impratichirsi liberamente

Poi, buttò là... al momento dell'esame:
1. ricevono le consegne ad una certa ora (eventualmente leggermente
personalizzate per ognuno... tanto perché non copino...)
2. hanno un certo tempo per mettere a punto il loro "notebook"
3. alla fine devono fare share con l'insegnate

La cosa buona è che anche per la correzione non ti troveresti neanche tu a
dover installare alcunchè sul tuo PC (fosse mai che qualche versione di
pacchetto è diversa...), ma puoi far girare semplicemente il loro notebook
direttamente dentro Collaboratory

Attenzione, io non l'ho mai provato con Pandas, l'ho usato solo con
Tensorflow (su cui, tra l'altro, è figo perché ti da anche a disposizione
la possibilità di farlo girare su GPU (Runtime > Change runtime type)

Se hai voglia facci sapere come va a finire e su cosa ti orienti alla
fine... mi sembra interessante questa prospettiva degli esami online di
python :-)

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


Re: [Python] argparse e stringhe

2020-04-08 Per discussione Marco De Paoli
Il giorno mer 8 apr 2020 alle ore 08:28 Marco De Paoli 
ha scritto:

>
>
> Il giorno mer 8 apr 2020 alle ore 08:16 Matteo Perini <
> perini.mat...@gmail.com> ha scritto:
>
>> Ciao a tutti,
>>
>> ho un problemino con il comportamento di argparse.
>>
>> Sto facendo delle prove con questo script di test:
>>
>> if __name__ == "__main__":
>>  parser = argparse.ArgumentParser()
>>  parser.add_argument("-t", "--text", default = 'ci\nao', type=str)
>>  args = parser.parse_args()
>>  text = args.text
>>  for line in text.split('\n'):
>>  print(line)
>>
>> Se eseguo lo script senza argomenti il risultato è quello atteso:
>>
>> ci
>>
>> ao
>>
>> Il "\n" viene interpretato correttamente.
>>
>> Se però eseguo lo script mettendo come argomento -t "ci\nao" il
>> risultato è:
>>
>> ci\nao
>
>
>> problema che riesco a risolvere convertendo text così:
>>
>> text = bytes(args.text, "utf-8").decode("unicode_escape")
>>
>> a questo punto ottengo di nuovo l'andata a capo.
>>
>>
>> Ultimo caso, se l'utente non mette le virgolette  e scrive -t ci\nao il
>> risultato di args.text è:
>>
>> cinao
>>
>> mi toglie solo la "\" e a questo punto io non so più come trattarlo.
>>
>> Che voi sappiate c'è un modo per controllare se un argomento ha le
>> virgolette o no.
>>
>> Oppure trattare l'input sempre come raw?
>>
>> Penso sia un problema che potrebbe essere piuttosto comune ma non ho
>> trovato soluzioni online.
>>
>> Ciao
>>
>
> se vuoi i parametri raw
>
> import sys
> print(sys.argv)
>

se invece vuoi qualche altra info su newline ed escape puoi dare
un'occhiata qui
https://stackoverflow.com/questions/16904064/end-of-line-new-line-escapes-in-bash

M.

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


Re: [Python] argparse e stringhe

2020-04-08 Per discussione Marco De Paoli
Il giorno mer 8 apr 2020 alle ore 08:16 Matteo Perini <
perini.mat...@gmail.com> ha scritto:

> Ciao a tutti,
>
> ho un problemino con il comportamento di argparse.
>
> Sto facendo delle prove con questo script di test:
>
> if __name__ == "__main__":
>  parser = argparse.ArgumentParser()
>  parser.add_argument("-t", "--text", default = 'ci\nao', type=str)
>  args = parser.parse_args()
>  text = args.text
>  for line in text.split('\n'):
>  print(line)
>
> Se eseguo lo script senza argomenti il risultato è quello atteso:
>
> ci
>
> ao
>
> Il "\n" viene interpretato correttamente.
>
> Se però eseguo lo script mettendo come argomento -t "ci\nao" il
> risultato è:
>
> ci\nao


> problema che riesco a risolvere convertendo text così:
>
> text = bytes(args.text, "utf-8").decode("unicode_escape")
>
> a questo punto ottengo di nuovo l'andata a capo.
>
>
> Ultimo caso, se l'utente non mette le virgolette  e scrive -t ci\nao il
> risultato di args.text è:
>
> cinao
>
> mi toglie solo la "\" e a questo punto io non so più come trattarlo.
>
> Che voi sappiate c'è un modo per controllare se un argomento ha le
> virgolette o no.
>
> Oppure trattare l'input sempre come raw?
>
> Penso sia un problema che potrebbe essere piuttosto comune ma non ho
> trovato soluzioni online.
>
> Ciao
>

se vuoi i parametri raw

import sys
print(sys.argv)

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


Re: [Python] linguaggio braille

2020-04-03 Per discussione Marco De Paoli
ciao a tutti,

Il giorno ven 3 apr 2020 alle ore 13:32 Matteo Perini <
perini.mat...@gmail.com> ha scritto:

> Magari essendo un po' off topic se volete rispondetemi in privato
>

se vi è possibile mantenete pure la discussione pubblica in lista

per i seguenti motivi:
1. tocca comunque vari aspetti tecnici interessanti
2. la lista non mi pare così congestionata da doverci porre il problema di
generare eccessivo traffico
3. mi pare che l'argomento riguardi obiettivi di inclusività e
partecipazione: che mi risultano essere ambiti molto cari alla comunità
python in generale

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


[Python] Fwd: psycopg3: request for support

2020-03-06 Per discussione Marco De Paoli
grande Daniele!!
... prepared statements, pure python, copy to/from con iteratori,
transazionalità ricorsiva ... async!! ... wow

un grazie sentito a Daniele per tutto il lavoro su psycopg2 e buon lavoro
per il 3!

adesso mi attivo per il founding...
cosa che invito anche voi lista a valutare

ciao!
Marco

-- Forwarded message -
Da: Daniele Varrazzo 
Date: ven 6 mar 2020 alle ore 11:31
Subject: psycopg3: request for support
To: 


As the people who know me from the software world know, I have been
psycopg2 maintainer for a good 10 years. During this time the library
has become the de-facto standard for Python and PostgreSQL
interoperation and I have learned all the good and all the bad of it
from thousands of users. I'm proud of the good, and I would love to
fix the bad.

I have wanted to write a worthy successor of psycopg2 for a long time,
but it hasn't been really possible because of that thing called *real
job*. I know myself, I am a pretty single-threaded person, and the
enthusiasm I would have poured into writing psycopg3 would have likely
sent my employer bust.

But there's good news! I don't have an employment now! :)

So I could dedicate plenty of time to write psycopg3... if only I
didn't have that background fear and need for stability that is
screaming that I cannot enjoy the simple things of life (playing
ukulele, making photography, writing database adapters...) but that I
have to find another employment ASAP.

Many companies have thrived thanks to the ease of development on the
Python/Postgres platform: it would be great if they could give back
some support to the project and help me writing a psycopg
implementation fit for the challenges of the roaring 20s!

I have written an article explaining my plans for the adapter and what
it would look like:
https://www.varrazzo.com/blog/2020/03/06/thinking-psycopg3/ Please let
me know what you think, and if you would like to help me to make it
happen please consider a contribution to keep me away from finding a
proper job! Thank you!

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


Re: [Python] applicativo Windows

2019-06-26 Per discussione Marco De Paoli
grazie a tutti

Il giorno gio 20 giu 2019 alle ore 14:57 Marco De Paoli 
ha scritto:

> vorrei fare un piccolo applicativo Windows.
>

per partire vorrei dare una chance a qt5
https://www.qt.io/qt-for-python

c'è anche la possibilità di testare con pytest
https://pytest-qt.readthedocs.io/en/latest/index.html

ed infine, se arrivo fin là, impacchettare il tutto con il fresco fresco
pyoxidizer
https://gregoryszorc.com/blog/2019/06/24/building-standalone-python-applications-with-pyoxidizer/

Gabriele, grazie della disponibilità
mi piacerebbe arrivare a rilasciare un progettino open su github
E, se potrai verificarlo, mi farai un favore

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


[Python] applicativo Windows

2019-06-20 Per discussione Marco De Paoli
ciao lista,
vorrei fare un piccolo applicativo Windows.
Anni fa avrei usato wxWidgets, py2exe e InnoSetup
Attualmente qual'è lo stato dell'arte? Voi cosa usate/usereste?

Non mi dispiacerebbe un look Windows (quindi meglio non tk)
"Costituisce titolo preferenziale" la possibilità dell'applicativo di
autoaggiorarsi (per esempio utilizzando API rest per verificare la versione
ed eventualmente scaricare l'aggiornamento)

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


Re: [Python] lista morta...

2019-04-29 Per discussione Marco De Paoli
Il giorno lun 29 apr 2019 alle ore 14:17 Matteo Benci  ha
scritto:

> Abbiamo deciso di abbandonare il canale telegram in forma ufficiale perché
> non si volevano adeguare al COC e perché a quanto pare era più importante
> l'utilizzo di bestemmie o sessismo piuttosto che il codice :(
>

ah, buono a sapersi
lo abbandono subito
da credente mi da più fastidio il sessismo che le bestemmie
nel secondo caso Dio non ha bisogno di essere difeso da me (chechè ne dica
qualche politico che si atteggia a paladino della divinità)
viceversa il sessismo inquina l'ambiente e discrimina essere umani

Marco

... però, mi viene da pensare... è nota a tutti questa dissociazione di
"Python Italia" dal canale telegram?
ok che io il canale telegram lo frequento poco, però questa cosa mi era
proprio sfuggita...
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda sui dizionari.

2019-02-11 Per discussione Marco De Paoli
ciao Gabriele,

Il giorno lun 11 feb 2019 alle ore 16:38 Gabriele Battaglia <
iz4...@libero.it> ha scritto:

> Ciao a tutti.
> Quanto tempo!
> Dunque dunque, vediamo chi, fra i sopravvissuti all'influenza, tremenda,
> di quest'anno, avrà voglia di leggere la mia domanda e darmi una dritta.
>
> Siamo nella fase finale di un gioco ed è ora di stampare la classifica
> dei vittoriosi.
>
> Ho un dizionario che ha questa struttura:
>
> giocatori= {'nome' : [ punteggio, vittorie, patte, sconfitte ] }
>
> Posso pertanto accedere facilmente ai dati dei singoli giocatori, ad
> esempio per conoscere il numero di vittorie accumulate da Valter
> interrogherò giocatori['Valter'][1]
>
> Il problema sorge quando devo stampare una classifica. L'utente può
> decidere se la vuole basata sul punteggio piuttosto che sul numero di
> vittorie, se la vuole ascendente o discendente.
>

FIELDS = ['nome', 'punteggio', 'vittorie', 'patte', 'sconfitte']

def output(d, field_name, reverse=False):
pos = FIELDS.index(field_name)
direction = "inversa " if reverse else ""
flat = [(n, *v) for n, v in giocatori.items()]
print(f"Classifica ordinata {direction}per {field_name}")
print("\n".join(["\t".join(map(str, r)) for r in sorted(flat,
key=lambda r: r[pos], reverse=reverse)]))

giocatori= {
'nc' : [1, 50],
'nd' : [2, 10],
'nb' : [3, 30],
'ne' : [4, 20],
'na' : [5, 40],
}

output(giocatori, 'nome')
output(giocatori, 'vittorie')
output(giocatori, 'vittorie', True)

Si avvicina a quello che avevi in mente?

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


Re: [Python] tkinter Treeview

2018-10-18 Per discussione Marco De Paoli
ciao Massimo
Il giorno mer 17 ott 2018 alle ore 22:20 Marcello  ha
scritto:

> Ciao a tutti,
> ok getto la spugna ... sono costretto a chiedere il vostro aiuto
> è 2 sere che cerco di risolvere questo problema ma non ne vengo fuori
> neanche con google :)
>
> devo creare un elenco con treeview e devo mettere un colore di sfondo
> diverso tra i 2 cicli di for
>
> googlando in giro ho letto che bisogna utilizzare il  tag_configure
>
> .tag_configure(*tagName*, option=None, ***kw*)
>
> quindi ho aggiunto all'interno del for:
>
> elenco.tag_configure('background', option='red')
>
> ma mi restituisce un errore
>
> potete indirizzarmi sulla retta via?
>


hai visto questo?
https://stackoverflow.com/questions/7878730/ttk-treeview-alternate-row-colors

in pratica prima devi fare un tag_configure per definire il tag che ti
servono
e poi assegni il tag (o i tag) che vuoi ai vari item

provando a modificare il tuo codice diventa... (attenzione, non testato)


> questo è il mio codice:
>
>
>
> from tkinter import ttk
> import tkinter as tk
>
> def selectItem(a):
> curItem = elenco.focus()
> print (elenco.item(curItem)["text"])
>
> finestra = tk.Tk()
>
> elenco = ttk.Treeview(finestra, selectmode='browse')
> elenco.pack(side='left')
>
> vsb = ttk.Scrollbar(finestra, orient="vertical", command=elenco.yview)
> vsb.pack(side='right', fill='y')
> elenco.configure(yscrollcommand=vsb.set)
>
> elenco["columns"]=("one")
> elenco.column("one", width=100 )
> elenco.insert("" , 0, text="PrimaColonna", values=("SecondaColonna"))
>

# qui crei i tag:

elenco.tag_configure("warning", background='red')
elenco.tag_configure("normal", background='black')


> for a in range (1,10):
>

# qui sostituisci la riga seguente:


> elenco.insert("", 3, a, text="aa")
>

# con queste due:

iid =  elenco.insert("", 3, a, text="aa")
elenco.item(iid, tags=("warnings", ))

for b in range (10,20):
> elenco.insert("", 3, b, text="bb")
>

# come sopra


> elenco.bind('', selectItem)
> elenco.pack()
> finestra.mainloop()
>

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


Re: [Python] Fwd: Re: evvai! finalmente funziona!

2018-07-25 Per discussione Marco De Paoli
ciao Gabriella

Il giorno 25 luglio 2018 15:37, laziale  ha
scritto:

> a ecco spiegato il motivo il quale non mi rispondi più su whatsapp.
> perchè tanto io sono scema, non capisco le cose e posso solo giocare!
> beh, ti sbagli
>

se posso permettermi...
non mi pare proprio che Luigi ti abbia dato della "scema" (per usare una
parola tua)
Ha solo detto che non hai le "basi"
Il che non ha nulla di offensivo
Ed è anche, se posso permettermi, vero
E' ovvio che non hai le basi: hai appena iniziato!

Io per esempio mi sono appassionato all'informatica quando ero alle medie,
perché mi avevano regalato un VIC 20
Ci ho messo anni, non scherzo, anni!! per fare un piccolo programma che
calcolasse alcune formulette

Non c'era internet, non c'erano mailing list, non c'era youtube
non c'era neppure python! c'era solo il BASIC con i numeri di riga
... uhm, sì, in effetti il mondo era un po' diverso ;-)

Ti giuro che ci ho messo un sacco a partire dal manualetto cartaceo che
c'era nella confezione per capire
come organizzare un po' di input e di print per far fare qualche conticino
al mio programma

Tu quanto ci hai messo? ... pochi giorni? ... una settimana?
Un fulmine!

Grazie anche all'aiuto di questa lista e delle persone che ti hanno dato
varie risposte

Sei arrivata a un bel risultato, brava!
Ti sei anche divertita? bene!
... ti è venuta voglia di approfondire? benissimo!

Sappi comunque che ci sono un SACCO SACCO di cose ancora da imparare
(pensa te che esiste anche una laurea, per dire, in Informatica... anche
più di una ... e ci vogliono begli annetti per completarle)

Insomma, se qualcuno ti dirà che non sai e non hai ancora le basi
probabilmente non te lo dice perché ce l'ha con te
Anzi!
Forse vuol semplicemente dire che c'è ancora tantissimo da studiare ... e
da provare!

Il che è una cosa bella, ti pare?
Imparare è uno dei piacere della vita, o no?
Tu che ne dici?

buon divertimento!
Marco
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] calcolatrice funzionante quasi del tutto

2018-07-24 Per discussione Marco De Paoli
ciao Gabriella,

Il giorno 24 luglio 2018 12:42, laziale  ha
scritto:

> ciao.
> ho programmato questa piccola calcolatrice, ma nel darmi il risultato c'è
> una piccola sorpresa!


in effetti concatena i due parametri forniti dall'utente, invece di
addizionarli


> non so come sistemare la cosa.
> qualcuno potrebbe aiutarmi?
> ps. dovrebbe fare l'addizione
>

bisogna fare in modo trasformare in numero i dati che ricavi dall'utente

al posto di:

x = (input("scrivi il primo numero"))

prova con:

x = int(input("scrivi il primo numero"))

Ora funziona?

bye bye,
Marco

... e se usi numeri con la virgola, funziona lo stesso bene? ;-)
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] pipenv (Was: Xkcd again)

2018-05-04 Per discussione Marco De Paoli
Il giorno 4 maggio 2018 18:01, Iacopo Spalletti 
ha scritto:

> La cosa che mi fa più gola è la dichiarazione della versione di python
> da usare e  l'integrazione con pyenv che consentirebbe di gestire in
> modo molto comodo l'upgrade delle versioni di python
>

pyenv, altro tool utile

io sulla macchina di sviluppo tengo virtualenv e virtualenvwrapper globali
installati con apt per capirsi, ed è l'unico passo fatto con sudo

lato utente poi posso far convivere tutte le versioni di python che voglio
tramite pyenv

faccio poi i vari mkvirtualenv per ogni progetto specificando il path della
versione precisa del python che mi serve

a quel punto mi basterà un workon per avere un ambiente completo e
autocontenuto

per ogni progetto versiono sia il requirements.txt che il requirements.in
e vivo abbastanza felice da qualche anno aspettando che passi la tempesta
perfetta dei gestori di pacchetti

per carità, capisco che il mio approccio risulti più artigianale e limitato
dei vari buildout, poetry, etc.
però, per il mio caso d'uso, ripeto!, per il mio caso d'uso, lo trovo
essenziale e mi ci sono abituato

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


Re: [Python] pipenv (Was: Xkcd again)

2018-05-04 Per discussione Marco De Paoli
Il giorno 4 maggio 2018 15:49, Paolo Melchiorre  ha
scritto:

> ma adesso uso da
> alcuni mesi con soddisfazione pip-tools che ti permette di avere un
> file con i vincoli di dipendenza da cui generare poi il classico
> requirements.txt
> https://github.com/jazzband/pip-tools


+1
anche io mi ci trovo bene

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


Re: [Python] Name matching

2018-03-02 Per discussione Marco De Paoli
ciao Karim,

Il giorno 2 marzo 2018 07:05, Karim  ha scritto:

> Ciao lista, ho bisogno di un suggerimento su un problema che devo
> risolvere.
>
> Contesto: ho un'applicazione Django che si collega ad un servizio di terze
> parti per ottere dei dati di un "business" che l'utente sta integrando.
> Il servizio ci da varie informazioni tra cui un dato `industry_type`.
>
> Questo valore `industry_type` e' digitato dall'utente e significa:
> descrizione dell'attivita' del business
>
> Ora questo valore `industry_type` lo devo confrontare con una tabella nel
> database che puo' essere paragonata alla classificazione delle attivita'
> ATECO[1]. La mia tabella ha un codice e una descrizione. Io faccio il match
> da `industry_type` alla descrizione sul database e il match piu' probabile
> "vince".
>
> Per applicare questo procedimento ho usato l'algoritmo jaro-winkler dal
> package "jellyfish"[2], faccio il matching di
> tutta la tabella nel database e il miglior match e' cio' che piu' si
> avvicina. Ovviamente non funziona un gran che' perche' il si avvicina
> significa quanti editing sono necessari per arriva
>
>
> Ecco un esempio:
>
> *INDUSTRY TYPE*, *DESCRIZIONE TROVATA*
> Solar Panels, Solar Panel Installation
> Software Consultancy, Software Publishing
> Auto Trim, Arts Education
> Consulting, Counselling Service - Debt
> Advanced Mobile Technology Development, Masonic Lodge Operation
> Bridal Boutique, Primary Education
> Cafe/Restaurant, Restaurant
>
> Ho circa 5000 industry_type disponibili realmente digitati dall'utente e
> purtroppo senza il corrispettivo matching, ma controllando i match generati
> dall'algoritmo, il risultato e' bassino, i match sono circa il 15%.
>
> Ora, c'e' modo di migliorare la situazione?
>
> Io stavo pensando di fare due cose:
>
> 1) Migliorare il matching cambiando algoritmo o applicandolo scorporando
> le parole di industry_type
>
> 2) Applicare del "machine learning" anche se mi tocca impararmelo. Pensavo
> di salvare gli abbinamenti fatti dall'utente per correggere il falso match
> in modo di avere un numero sempre maggiore di associazioni di
> `industry_type` al codice attivita'.
>
> Quindi se ad esempio l'industry_type e' "Sport activities" purtroppo non
> mi esce "Sporting Club Room" che e' presente come attivita', ma mi esce
> tutt'altro.
> Se pero' io abbinassi al codice di "Sporting Club Room" l'abbinamento
> "sport activities" corretto dall'utente, avrei qualcosa di piu' su cui fare
> il matching la volta successiva.
>
> La cosa buffa e' che usando il matching, piu' parole scrivi piu' tendi ad
> allontanarti dal match giusto se le parole sono diverse.
>
> Tornando all'esempio di prima:
>
> l'utente ha digitato "Sport" e allora il match mi da correttamente
> "Sporting Club Room", ma se l'utente digita "sport activities", l'algoritmo
> mi trova: "Podiatrist / Chiropodist" a causa della distanza dell'algoritmo.
>
> Qualcuno di voi ha affrontato questo tipo di situazioni?
>

non so so può essere utile nel tuo caso...

comunque potresti dare un'occhiata agli algoritmi di fuzzy-match basati su
q-grams

Se sei su postgres fa tutto lui usando pg_trgm
https://www.postgresql.org/docs/current/static/pgtrgm.html

C'è poi Levenshtein (che dovrebbe essere una generalizzazione del
Jaro–Winkler che hai usato tu)
https://en.wikipedia.org/wiki/Levenshtein_distance

Di cui trovo anche alcune implementazioni python (che però non ho mai
usato):
https://pypi.python.org/pypi/editdistance
https://pypi.python.org/pypi/python-Levenshtein

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


Re: [Python] Django e celery

2017-10-20 Per discussione Marco De Paoli
ciao Karim,

Il giorno 21 ottobre 2017 00:27, Karim <lemieli...@gmail.com> ha scritto:

> Ciao lista, ciao Marco De Paoli. Ecco un breve riassunto del passaggio da
> Celery a Django-Q
>

grazie mille delle info!

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


Re: [Python] Django e celery

2017-10-13 Per discussione Marco De Paoli
ciao Karim,

Il giorno 12 ottobre 2017 22:46, Karim  ha scritto:

> 2017-10-09 14:00 GMT+11:00 Karim :
>
>> ​[...]
>>
>
> ​Piccola riunione al lavoro e abbiamo deciso di allocare del tempo nel
> prossimo sprint per passare a django-q. Nessuno ha davvero avuto esperienze
> con package simil celery?
>

io uso django-rq e non mi trovo male

però ho avuto un po' di problemi in alcuni casi particolari (es. in caso di
riavvio dei worker rischia di incasinarsi sui job in "processing": ne
mostra due; poi se cancello dei job in coda continua a mostrarli nel
conteggio)

Un altra cosa che mi manca è il persistent store su DB che sia
batteries-included

Insomma django-q mi sembra molto interessante, grazie della segnalazione
Cercherò di vedermelo, nel frattempo se tu hai news/impressioni/valutazioni
condividile pure, grazie

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


Re: [Python] OT per Marco Beri

2017-03-15 Per discussione Marco De Paoli
Il giorno 14 marzo 2017 21:06, Maurizio Boscaini <
maurizio.bosca...@gmail.com> ha scritto:

> apprezzo anch'io
> grazie 1000
> mauri
>
> p.s. sto terminando di scrivere "Imparare a programmare con Python" :-)
>

wow!
https://www.amazon.it/Imparare-programmare-Python-manuale-programmatori/dp/8850333986

lo aspetto con ansia!

... acc, però, "1 gen 2030"! mio figlio avrà 25 anni per allora :-(

metti sotto il Beri a scrivere! che sull'argomento materiale ne ha già
tanto di buono :-)

buon lavoro ad entrambi!
Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Software per creare grafici UML su mac

2017-01-10 Per discussione Marco De Paoli
Il giorno 10 gennaio 2017 11:49, Karim  ha scritto:

> Cosa usate per fare grafici uml su mac? Ho visto "modelio", ma usa java e
> io sto abbastanza male quando devo far partire java...
>
> Idee?
>

io mi sono trovato bene con questo

http://plantuml.com/

c'è sempre java di mezzo però lo usi solo per generare il png (o che altro
formato vuoi)

il bello, per me, è che si parte da un file di testo dove si specifica il
diagramma

e a me i file di testo in genere piacciono per il solito motivo che sono
più coerentemente versionati con git/hg ed è quindi più facile lavorarci a
più mani mani oppure tenere traccia dell'evoluzione nel tempo

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


Re: [Python] python 3.6 & The Case Against Python 3

2016-11-24 Per discussione Marco De Paoli
Il giorno 23 novembre 2016 15:34, Marco Santamaria <
marco.santama...@gmail.com> ha scritto:

>
> 2. Le stringhe sono più difficili da usare in Python 3 per un beginner?
>

a proposito di py2/py3 su unicode, vi segnalo proprio oggi
https://twitter.com/aymericaugustin/status/801524075705339904

e, a proposito delle difficoltà per un beginner Aymeric dice testualmente:
"Python 2 strings are so beginner-hostile that they were my primary
interview question for telling junior and senior developers apart."

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


Re: [Python] Slack channel pythonita

2016-10-30 Per discussione Marco De Paoli
Il giorno 30 ottobre 2016 22:40, Karim  ha scritto:

> Ciao a tutti, cosi' per divertirmi ho creato un team su python in
> italiano, ovviamente non c'e' nessuno, ma ho preso ispirazione da un
> articolo che ho letto e ho pensato di creare una community.
>
> Per fare il canale di pythonita ho usato slack che, per chi e' una
> versione moderna di IRC, con tante cose carine in piu'. E' possibile
> accedere sia da dektop che da web che da mobile. www.slack.com
>
> Dato che slack richiede una email per entrare nel canale, ho creato un
> form usando typeform. (lo so, l'url fa pena)
>
> https://karim83.typeform.com/to/E0AcC5
>
> Il mio intento sarebbe creare canali per tematiche diverse (#django,
> #flask, #tkinter...)
>
> ​Forse e' un'idea che puo' far piacere, forse non avra' successo e nessuno
> iscrivera', ma almeno ci ho provato.
>

e allora proviamoci! :-)
io mi sono appena iscritto

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


[Python] fizz-buzz-in-tensorflow

2016-07-27 Per discussione Marco De Paoli
http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/

secondo me qui è il candidato che sta valutando l'intervistatore e non
viceversa! :-)

(... ma veramente il test fizz-buzz è così diffuso nelle interviste?)

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


Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7

2016-06-23 Per discussione Marco De Paoli
Il giorno 23 giugno 2016 15:18, Marco Santamaria  ha scritto:

> Ma il fatto di utilizzare di utilizzare o meno la modalità emperor non
> dipende dalle opzioni di uwsgi? Come può essere deciso dal pacchetto
> installato con yum?
>

beh, yum tipicamente non si limita ad installarti l'eseguibile in bin
ti configura anche: utente, servizio, avvio automatico, etc. etc.
(vedi l'installazione di nginx o ... postgres...)

però, ripeto, bisognerebbe vedere cosa fa quello specifico pacchetto...

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


Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7

2016-06-23 Per discussione Marco De Paoli
Il giorno 23 giugno 2016 15:06, Marco De Paoli <depao...@gmail.com> ha
scritto:

>
>
> Il giorno 23 giugno 2016 14:53, Marco Santamaria <
> marco.santama...@gmail.com> ha scritto:
>
>>
>> 2016-06-23 14:48 GMT+02:00 Marco De Paoli <depao...@gmail.com>:
>>>
>>> """
>>> Now that the development files are available, we can install uWSGI
>>> globally through pip by typing:
>>> sudo pip install uwsgi
>>> """
>>>
>>> ... non mi pare che sia all'interno dell'environment, bensì globale
>>> risulterà un solo uwsgi per tutti i virtualenv
>>>
>>
>> Ma se il pip di sistema utilizza Python 2.7 e il mio virtual environment
>> usa Python 3.4, questo non può essere un problema?
>>
>
> no, direi di no
>

ho detto un idiozia
sì, hai ragione, può essere un problema

nel mio caso non ho ambienti misti

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


Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7

2016-06-23 Per discussione Marco De Paoli
Il giorno 23 giugno 2016 14:53, Marco Santamaria <marco.santama...@gmail.com
> ha scritto:

>
> 2016-06-23 14:48 GMT+02:00 Marco De Paoli <depao...@gmail.com>:
>>
>> """
>> Now that the development files are available, we can install uWSGI
>> globally through pip by typing:
>> sudo pip install uwsgi
>> """
>>
>> ... non mi pare che sia all'interno dell'environment, bensì globale
>> risulterà un solo uwsgi per tutti i virtualenv
>>
>
> Ma se il pip di sistema utilizza Python 2.7 e il mio virtual environment
> usa Python 3.4, questo non può essere un problema?
>

no, direi di no


> Che vantaggio c'è a installare globalmente con pip invece che con yum (su
> EPEL c'è la versione 2.0.12)?
>

con pip sei sicuro di installare l'ultima versione disponibile su pypi (che
normalmente è molto aggiornata)
con yum dipendi dalle scelte dei mantainer...
non so quale versione proponga yum al momento, ma da come ricordo era
piuttosto vecchiotta

oltre al fatto che gli step di installazione proposti da digital ocean
prevedono di installare uwsgi in modalità emperor
che mi pare decisamente la più flessibile
e anche qui non so invece cosa decida di fare il pacchetto installato con
yum

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


Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7

2016-06-23 Per discussione Marco De Paoli
Il giorno 23 giugno 2016 14:30, Marco Santamaria  ha scritto:
>
>
>-
>
> https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-centos-7
>
>
"""
Now that the development files are available, we can install uWSGI globally
through pip by typing:
sudo pip install uwsgi
"""

... non mi pare che sia all'interno dell'environment, bensì globale
risulterà un solo uwsgi per tutti i virtualenv

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


Re: [Python] urlparse "da i numeri"

2016-06-22 Per discussione Marco De Paoli
Il giorno 22 giugno 2016 14:43, Manlio Perillo <manlio.peri...@gmail.com>
ha scritto:

> 2016-06-22 12:43 GMT+02:00 Marco De Paoli <depao...@gmail.com>:
> > pare che urlparse nella lib standard abbia un comportamento un po'
> strano...
> >
> > [...]
> >
> > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535
> non ha
> > senso, però forse mi sarei aspettato un eccezione, mentre invece la port
> > oltre un certo numero viene semplicemente interpretata come None
> >
> >>>> urlparse('redis://localhost:65535').port
> > 65535
> >>>> urlparse('redis://localhost:65536').port is None
> > True
> >
>
> Nell' RFC3986 non è prescritto nessun limite per la porta:
>
> port  = *DIGIT
>

a quanto pure in futuro python lancerà eccezione

https://github.com/python/cpython/blob/master/Lib/urllib/parse.py#L159

beh, meglio di adesso, che è così

https://github.com/python/cpython/blob/288becf5563483ae9da14c6fb5deb4f32e4cd3d5/Lib/urllib/parse.py#L160

In merito al vincolo sul range 0-65535, ecco la discussione relativa
https://bugs.python.org/issue14036

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


Re: [Python] urlparse "da i numeri"

2016-06-22 Per discussione Marco De Paoli
Il giorno 22 giugno 2016 12:43, Marco De Paoli <depao...@gmail.com> ha
scritto:

> pare che urlparse nella lib standard abbia un comportamento un po'
> strano...
>
> Python 2.7.6 (default, Jun 22 2015, 17:58:13)
> [GCC 4.8.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from urlparse import urlparse
> >>> u = urlparse('redis://localhost:6380')
> >>> u.port
> 6380
> >>> u = urlparse('redis://localhost:63801')
> >>> u.port
> 63801
> >>> u = urlparse('redis://localhost:638012')
> >>> u.port
> >>> u.port is None
> True
>
> stessa cosa succede su python 3
> cambiando ovviamente l'import
> >>> from urllib.parse import urlparse
>
>
> Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non
> ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port
> oltre un certo numero viene semplicemente interpretata come None
>
> >>> urlparse('redis://localhost:65535').port
> 65535
> >>> urlparse('redis://localhost:65536').port is None
> True
>
>
sorprendentemente su python 2.6 funziona correttamente!

Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from urlparse import urlparse
>>> urlparse('redis://localhost:638012').port
638012

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


Re: [Python] urlparse "da i numeri"

2016-06-22 Per discussione Marco De Paoli
Il giorno 22 giugno 2016 14:43, Manlio Perillo <manlio.peri...@gmail.com>
ha scritto:

> 2016-06-22 12:43 GMT+02:00 Marco De Paoli <depao...@gmail.com>:
> > pare che urlparse nella lib standard abbia un comportamento un po'
> strano...
> >
> > [...]
> >
> > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535
> non ha
> > senso, però forse mi sarei aspettato un eccezione, mentre invece la port
> > oltre un certo numero viene semplicemente interpretata come None
> >
> >>>> urlparse('redis://localhost:65535').port
> > 65535
> >>>> urlparse('redis://localhost:65536').port is None
> > True
> >
>
> Nell' RFC3986 non è prescritto nessun limite per la porta:
>
> port  = *DIGIT
>

più prosaicamente mi ero fermato a wikipedia
https://en.wikipedia.org/wiki/Port_(computer_networking)

che parla appunto di interi a 16-bit

grazie della precisazione

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


Re: [Python] urlparse "da i numeri"

2016-06-22 Per discussione Marco De Paoli
Il giorno 22 giugno 2016 12:43, Marco De Paoli <depao...@gmail.com> ha
scritto:

> pare che urlparse nella lib standard abbia un comportamento un po'
> strano...
>
> Python 2.7.6 (default, Jun 22 2015, 17:58:13)
> [GCC 4.8.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from urlparse import urlparse
> >>> u = urlparse('redis://localhost:6380')
> >>> u.port
> 6380
> >>> u = urlparse('redis://localhost:63801')
> >>> u.port
> 63801
> >>> u = urlparse('redis://localhost:638012')
> >>> u.port
> >>> u.port is None
> True
>
> stessa cosa succede su python 3
> cambiando ovviamente l'import
> >>> from urllib.parse import urlparse
>
>
> Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non
> ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port
> oltre un certo numero viene semplicemente interpretata come None
>
> >>> urlparse('redis://localhost:65535').port
> 65535
> >>> urlparse('redis://localhost:65536').port is None
> True
>
> Marco
>

ah, ho usato "redis" come scheme
ma redis non centra nulla, avessi usato "http" sarebbe stato lo stesso

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


[Python] urlparse "da i numeri"

2016-06-22 Per discussione Marco De Paoli
pare che urlparse nella lib standard abbia un comportamento un po' strano...

Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from urlparse import urlparse
>>> u = urlparse('redis://localhost:6380')
>>> u.port
6380
>>> u = urlparse('redis://localhost:63801')
>>> u.port
63801
>>> u = urlparse('redis://localhost:638012')
>>> u.port
>>> u.port is None
True

stessa cosa succede su python 3
cambiando ovviamente l'import
>>> from urllib.parse import urlparse


Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non
ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port
oltre un certo numero viene semplicemente interpretata come None

>>> urlparse('redis://localhost:65535').port
65535
>>> urlparse('redis://localhost:65536').port is None
True

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


Re: [Python] Decorated Concurrency - Python multiprocessing made really really easy

2016-05-20 Per discussione Marco De Paoli
Il giorno 20 maggio 2016 11:56, Marco Beri  ha scritto:

> 2016-05-20 11:46 GMT+02:00 Marco Beri :
>
>> 2016-05-20 11:39 GMT+02:00 Strap :
>>
>>> Ciao a tutti,
>>> per curiosità, ma soprattutto per vedere l'effetto che fa :-P, condivido
>>> con
>>> voi il seguente link: https://www.peterbe.com/plog/deco
>>
>>
>> Bello! Certo che tre sleep(5) in parallelo vanno bene.
>> Vedo meno bene tre loop che fanno robe cpu intensive :-)
>>
>
> Ho parlato troppo presto... Poi nel resto dell'articolo fa degli esempi
> molto più fighi!
>
> Grassie!
>

+1

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


Re: [Python] I: aiuto

2016-05-10 Per discussione Marco De Paoli
Il 10 maggio 2016 17:48, vincitorionic...@inwind.it
 ha scritto:
>
>
> Buonasera, mi chiamo nicola  e sono un vostro iscritto, da circa un mese ho
> acquistato raspberry pi 3 con hat matrix.
> ho un problema urgente da risolvere
>
> il mio script
>
> cd rpi-fb-matrix
> sudo ./rpi-fb-matrix matrix.cfg
>
> 1 - vorrei che lo script sopra partisse automaticamente all'accensione del
> raspberry tramite LXTerminal.
>
> in attesa di una urgente risposta

python non centra
si tratta di avviare uno script all'avio del sistema operativo

se cerchi in google
"raspbian start service on boot"

oppure
"raspbian start python script on boot"

trovi un sacco di doc.

(in effetti non è neanche specifico della raspian, bensì di linux)

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


Re: [Python] __debug__ e EAFP

2016-05-10 Per discussione Marco De Paoli
Il 10 maggio 2016 17:02, Roberto Polli  ha scritto:
> Il 10 maggio 2016 12:08, Luca Bacchi  ha scritto:
>> "assert" va usato solo come forma di programmazione difensiva,
>
> Il comportamento è ereditato dal C.

non ricordo dove l'ho letta comunque l'immagine mi sembra efficace e
ve la ripropongo
è presa dall'elettronica

è come se in un circuito uno si prendesse il disturbo di predisporre
tutti i fusibili
li lascia lì mentre verifica la scheda a banco
e poi li toglie tutti (o meglio li mette in corto) una volta che usa
la scheda nell'ambito definitivo
o sul prodotto industriale

brr!

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


[Python] Guido - "King's Day Speech"

2016-04-28 Per discussione Marco De Paoli
"King's Day Speech"
http://neopythonic.blogspot.com/2016/04/kings-day-speech.html

... nel caso non l'aveste ancora notato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] attributi astratti?

2016-03-19 Per discussione Marco De Paoli
Il 11/mar/2016 17:13, "Marco Santamaria"  ha
scritto:
>
> Ciao,
>
> sto lavorando ad un piccolo framework nel quale mi sento autorizzato ad
usare il modulo abc per creare delle classi astratte/interfacce per
permetterne l'estensione.

https://pymotw.com/3/abc/

publicato ieri

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


Re: [Python] aiuto, mi serve un test

2016-03-11 Per discussione Marco De Paoli
Il giorno 11 marzo 2016 14:44, Marco De Paoli <depao...@gmail.com> ha
scritto:

> ciao lista!
> devo fare un test ai miei studenti di un mini corso che ho fatto su python
> Per caso avete qualcosa di pronto?
> Niente di cool, domande semplici, gli ho insegnato le basi
> Pensavo a domande a risposta multipla, (non certo a fargli scrivere lungo
> codice)
> Durata del test un oretta massimo (ma se si può fare in mezz'ora meglio
> ancora)
> In italiano (ma se avete risorse in inglese dite pure che poi gliele
> traduco)
>

penso che prenderò da qui:

http://www.tutorialspoint.com/python/python_online_test.htm

grazie per i suggerimenti arrivatemi da "dietro le quinte"!

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


[Python] aiuto, mi serve un test

2016-03-11 Per discussione Marco De Paoli
ciao lista!
devo fare un test ai miei studenti di un mini corso che ho fatto su python
Per caso avete qualcosa di pronto?
Niente di cool, domande semplici, gli ho insegnato le basi
Pensavo a domande a risposta multipla, (non certo a fargli scrivere lungo
codice)
Durata del test un oretta massimo (ma se si può fare in mezz'ora meglio
ancora)
In italiano (ma se avete risorse in inglese dite pure che poi gliele
traduco)

Grazie mille per qualunque idea!
Marco

... dai dai dai, che sono giù di fantasia, e devo fargli il test lunedì
TYSM
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ciao a tutti da un vero principiante

2016-02-09 Per discussione Marco De Paoli
Il giorno 9 febbraio 2016 17:13, Andrea D'Amore  ha
scritto:

> Io ad un principainte assoluto suggerisco "Learn python the hard way"
> di Zed Shaw (in inglese) che parte proprio da zero e spiega un sacco
> di aspetti interessanti fino ad una webapp.
>


alcune affermazioni sono un po' obsolete:
"I repeat, do not use Python 3."
"Just learn Python 2 and ignore people saying Python 3 is the future."

[http://learnpythonthehardway.org/book/ex0.html]

secondo me, per chi inizia da zero e non ha un obiettivo legacy (es.
manutenere un sito fatto ancora in python 2)
è ormai meglio il contrario: partire direttamente con python3

e così impara subito ad usare la print corretta e non deve neanche imparare
che esisteva una differenza tra "str" e "unicode"

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


Re: [Python] Pordenone

2015-11-20 Per discussione Marco De Paoli
Il giorno 20 novembre 2015 09:18, Marco Fochesato  ha
scritto:

>
> 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.
>

Pordenone scatena l'inferno

... ehm, per la cronaca, io ci vivo in provincia di Pordenone, uno fra i
300.000 :-)

e ora, scusate, devo andare, ormai le fiamme mi lambiscono :-D

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


Re: [Python] Paramiko - Ciclo for e Array (script)

2015-10-06 Per discussione Marco De Paoli
ciao Remo,

2015-10-06 12:40 GMT+02:00 Remo Cosini :

> Salve a tutti,
> sono nuovo di python e finora sono riuscito a cavarmela da autodidatta.
> Ho trovato uno script (che fa uso di paramiko) e l'ho modificato secondo
> mie esigenze. Avevo necessità di testare degli accessi SSH (con user e pwd
> già cablata) partendo da un array e mettendo
> il tutto dentro un ciclo, ma sembra non andare, l'errore che leggo è il
> seguente:
>
> Could not SSH to ['localhost', '127.0.0.1'], waiting for it to start
> Could not connect to ['localhost', '127.0.0.1']. Giving up
>
> Sembra non prendere i valori host uno per volta, ma tutti insieme, ecco lo
> script:
>
> import sys
> import time
> import select
> import paramiko
> i = 1
> host = ['localhost', '127.0.0.1', '192.168.2.2']
> for item in host:
>

da questo momento in poi dovresti usare "item" e non "host"

while True:
> print 'Trying to connect to %s (%i/3)' % (host, i)
> try:
> ssh = paramiko.SSHClient()
>
> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
> ssh.connect(host, port=22, username='centos',
> password='reverse')
>

qui usi "host", ma dovevi usare "item"


> print "Connected to %s" % host
> break
> except paramiko.AuthenticationException:
> print "Authentication failed when connecting to
> %s" % host
> sys.exit(1)
> except:
>

ti consiglio di evitare l'except "senza niente"
https://realpython.com/blog/python/the-most-diabolical-python-antipattern/


> print "Could not SSH to %s, waiting for it to
> start" % host
> i += 1
> time.sleep(2)
> # If we could not connect within time limit
> if i == 3:
> print "Could not connect to %s. Giving up" % host
> sys.exit(1)
> # Send the command (non-blocking)
> stdin, stdout, stderr = ssh.exec_command("uname")
> # Wait for the command to terminate
> while not stdout.channel.exit_status_ready():
> # Only print data if there is data to read in the channel
> if stdout.channel.recv_ready():
> rl, wl, xl = select.select([stdout.channel], [],
> [], 0.0)
> if len(rl) > 0:
> # Print data from stdout
> print '---'
> print stdout.channel.recv(1024),
> # Send the command (non-blocking)
> stdin, stdout, stderr = ssh.exec_command("hostname")
> # Wait for the command to terminate
> while not stdout.channel.exit_status_ready():
> # Only print data if there is data to read in the channel
> if stdout.channel.recv_ready():
> rl, wl, xl = select.select([stdout.channel], [],
> [], 0.0)
> if len(rl) > 0:
> # Print data from stdout
> print stdout.channel.recv(1024),
> # Send the command (non-blocking)
> stdin, stdout, stderr = ssh.exec_command("hostname -I")
> # Wait for the command to terminate
> while not stdout.channel.exit_status_ready():
> # Only print data if there is data to read in the channel
> if stdout.channel.recv_ready():
> rl, wl, xl = select.select([stdout.channel], [],
> [], 0.0)
> if len(rl) > 0:
> # Print data from stdout
> print stdout.channel.recv(1024),
> print '---'
> #
> # Disconnect from the host
> #
> print "Command done, closing SSH connection."
> ssh.close()
>
> Qualcuno mi illumina?
>

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


Re: [Python] FRP book (era: Re: Web Server e Web Framework)

2015-07-10 Per discussione Marco De Paoli
Il 03/lug/2015 15:43 Nicola Larosa n...@teknico.net ha scritto:

 Marco Beri wrote:
  Comunque, aldilà o meno, spererei di vedere qualcosa di diverso
  nel nostro lavoro, prima di arrivare a quel punto fatidico.
 
  Intendo come modalità di sviluppo.

 Non per il gusto della novità fine a se stessa, ma per quella vaga
 sensazione di esser circondati di problemi di base irrisolti, nevvero? :-)

 Potresti fare di peggio che leggere il primo capitolo (gratis) di questo:

 Functional Reactive Programming http://www.manning.com/blackheath/

 Magari non ti riconosci nelle soluzioni, ma nei problemi scommetto di sì.

Interessante.
Ma perché libreria ed esempi in java?
Mi parrebbe che i channel di go ci andrebbero a nozze con frp
e il suo approccio data-driven / data-flow
Oppure no?

Per dire, mi piglia tutto il discorso del frp (data flow, dichiarativo,
etc.) ... ma quello che ne salta fuori in java (vedi l'esempio di destra di
pagina 15) non è che mi piaccia granché

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


Re: [Python] scrivere app python con layout grafico in html5?

2015-07-01 Per discussione Marco De Paoli
Il giorno 25 giugno 2015 16:06, Manlio Perillo manlio.peri...@gmail.com
ha scritto:

 Per questo è nato asm.js ed ora diversi gruppi si sono uniti in
 https://www.w3.org/community/webassembly/
 Vedi anche
 https://brendaneich.com/2015/06/from-asm-js-to-webassembly/


aggiungo questo

https://medium.com/javascript-scene/why-we-need-webassembly-an-interview-with-brendan-eich-7fb2a60b0723

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


Re: [Python] Red Baron

2015-06-26 Per discussione Marco De Paoli
ciao Giovanni,

2015-06-26 17:42 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it:

 Solo per segnalare un progetto che mi piace e che stiamo usando in questi
 giorni:

 https://github.com/psycojoker/redbaron


in effetti è un bel progetto
hai voglia di dirci per cosa lo usate voi?

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


Re: [Python] Red Baron

2015-06-26 Per discussione Marco De Paoli
Il giorno 26 giugno 2015 18:15, Giovanni Porcari 
giovanni.porc...@softwell.it ha scritto:


  Il giorno 26/giu/2015, alle ore 18:01, Marco De Paoli 
 depao...@gmail.com ha scritto:
 
  ciao Giovanni,
 
  2015-06-26 17:42 GMT+02:00 Giovanni Porcari 
 giovanni.porc...@softwell.it:
  Solo per segnalare un progetto che mi piace e che stiamo usando in
 questi giorni:
 
  https://github.com/psycojoker/redbaron
 
  in effetti è un bel progetto
  hai voglia di dirci per cosa lo usate voi?


 In Genropy (come del resto in Django) per definire il model si scrive del
 codice python.
 Per progetti abbastanza grossi e con moltissime tabelle e campi (oppure
 per piccoli progetti
 in mano a sviluppatori alle prime armi) può essere comodo avere una GUI
 per gestire il model.

 Stiamo realizzando un tool di supporto che consente di vedere in una
 griglia tutte le tabelle
 di un package (e di editarle) e in una griglia, collegata alla prima, le
 colonne della
 tabella selezionata. Anche in questo caso la griglia è editabile per
 cambiare le caratteristiche
 delle colonne. Possono essere aggiunte o tolte sia le tabelle che le
 colonne di una tabella.

 Quindi per popolare le griglie da editare ci affidiamo a Red Baron e
 successivamente, sempre tramite
 Red Baron, andiamo a scrivere la nuova versione del model senza
 interferire con le altre parti di codice
 eventualmente presenti nel modulo che definisce la tabella.

 Senza Red Baron credo sarebbe stato MOLTO più difficile ;)


Molto interessante

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


Re: [Python] Fantasiosa scienza (era: Re: Stop using print for debugging [TDD Everywhere])

2015-06-25 Per discussione Marco De Paoli
2015-06-24 22:57 GMT+02:00 Carlo Miron ca...@miron.it:


 Il 24/giu/2015 17:08, Marco De Paoli depao...@gmail.com ha scritto:

  a proposito di Solaris e di Tarkovsky (... tanto per non andare OT, eh)
  qualcuno ha visto La zona / Stalker ?
  http://www.imdb.com/title/tt0079944/?ref_=fn_tt_tt_36
  l'ho visto da poco perchè me lo ha regalato un amico e non mi sono
 ancora fatto un idea precisa
  stilisticamente è probabilmente strepitoso
  ma non ho ancora capito se mi è piaciuto :-D

 non ho visto il film, ma ho letto il romanzo nell'edizione Urania del
 1988, e l'ho trovato semplicemente strepitoso.


http://www.amazon.it/gp/product/8871685717

ordinato, grazie :-)

il film è liberamente tratto dal libro (in effetti pare sia una specie di
seguito del libro)
comunque la sceneggiatura è scritta dagli stessi autori

bye,
Marco

P.S.
... per molti versi (o anche nel multiverso [1]) è questa lista ad essere
strepitosa
uno dei posti più brillanti del web, ha detto qualcuno
si passa da discussioni di estetica fantascientifica ad analisi sulla
teoria della roulette a discussioni sulla netiquette a ...

Python, la sliding-door di un multiverso cognitivo! :-D

[1] https://it.wikipedia.org/wiki/Multiverso
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] So che e' OT ma e' troppo carina

2015-06-25 Per discussione Marco De Paoli
2015-06-24 23:19 GMT+02:00 Daniele Palmese pal...@gmail.com:

 2015-06-24 23:02 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:

 Scherodinger's Backup

 The condition of any backup is unknown until a restore is attempted


 Povero gatto... pardon, backup.


I backup funzionano sempre.
Sono i restore che danno problemi

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


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco De Paoli
Il giorno 25 giugno 2015 01:23, Marco Beri marcob...@gmail.com ha scritto:

 2015-06-25 1:22 GMT+02:00 Simone Federici s.feder...@gmail.com:

 Ma credo che le parole adatte siano quelle di Gandhi:
 La propensione dell'uomo a ingannare se stesso è immensamente superiore
 alla sua capacità d'ingannare il prossimo.


 Questa è una incredibile perla che non conoscevo.

 Grazie Simone.


+1

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


Re: [Python] wx e Tools. Era: Re: scrivere app python con layout grafico in html5?

2015-06-25 Per discussione Marco De Paoli
Il giorno 25 giugno 2015 01:01, Daniele Tricoli er...@mornie.org ha
scritto:

 On Wednesday 24 June 2015 21:35:03 Carlos Catucci wrote:
  Io sapevo Boa Constructor, gioco di parole tipico dello humour da
  informatici, quello che dici tu a programmare serve a poco

 Ah, quindi non vi riferivate a questo? :)

 https://i.imgur.com/aVu8Oig.png

 o/


wow! :-)

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


Re: [Python] Circular references Django migration problem

2015-06-24 Per discussione Marco De Paoli
Il giorno 23 giugno 2015 22:04, Simone Federici s.feder...@gmail.com ha
scritto:

 Carlos Catucci:

 Va beh lunedi' provo a commentare un poco di rovba fino a che non vedo
 socmparire la Circular Ref cosi da capire cosa gli dia fastidio.



 hai provato a riscrivere il builtin __import__ in modo da stamparti
 l'ordine di importazione dei moduli?

 qualcosa di questo tipo da mettere nel manage.py:

 import __builtin__
 original_import = __builtin__.__import__
 def log_import(name, globals={}, locals={}, fromlist=[], level=-1):
 print name
 return original_import(name, globals=globals, locals=locals,
 fromlist=fromlist, level=level)
 __builtin__.__import__ = log_import


fico!

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


[Python] python è superato

2015-06-24 Per discussione Marco De Paoli
... torniamo al BASIC!
https://github.com/rollbear/basicpp

attraverso il C++

e ora permettetemi un piccolo OT...

 u{}.format({f: uè})
u{'f': u'\\xe8'}

proliferazione innaturale di barre
... pare tanto un bel bug

mi succede su 2.7.6, devo ancora provare altre versioni 2.7.x
(ovviamente sulla 3 non succede)

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


Re: [Python] Fantasiosa scienza (era: Re: Stop using print for debugging [TDD Everywhere])

2015-06-24 Per discussione Marco De Paoli
Il giorno 24 giugno 2015 16:58, Matteo Scarpa matteoscarp...@gmail.com ha
scritto:


  Quindi siamo in 3.
 In realta' 2 e mezzo perche' ho dormito buona parte del tempo. Ancora
 adesso solo apensarci mi viene l'abbiocco.

 Prima ho visto l'alternativa russa poi quella USA... Magicamente da allora
 non percepisco piú un film come lento... É grave?


a proposito di Solaris e di Tarkovsky (... tanto per non andare OT, eh)

qualcuno ha visto La zona / Stalker ?
http://www.imdb.com/title/tt0079944/?ref_=fn_tt_tt_36

l'ho visto da poco perchè me lo ha regalato un amico e non mi sono ancora
fatto un idea precisa

stilisticamente è probabilmente strepitoso
ma non ho ancora capito se mi è piaciuto :-D

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


Re: [Python] BASIC [ERA]: Re: python è superato

2015-06-24 Per discussione Marco De Paoli
2015-06-24 17:11 GMT+02:00 Lorenzo Sutton lorenzofsut...@gmail.com:

 On 24/06/2015 15:16, Marco De Paoli wrote:

 ... torniamo al BASIC!
 https://github.com/rollbear/basicpp

 attraverso il C++


 Volendo c'è anche BaCon:

 http://www.basic-converter.org/


... notare le date di rilascio dei due progetti
secondo me orami possiamo individuare un trend stabile di ritorno al BASIC

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


Re: [Python] scrivere app python con layout grafico in html5?

2015-06-24 Per discussione Marco De Paoli
Il giorno 24 giugno 2015 16:29, germano carella germano.care...@gmail.com
ha scritto:

 Ciao a tutti,
 Da qualche mese sto studiando l'accessibilità di html5. Effettivamente
 debbo ammettere, anche perché posso testarlo con i miei strumenti, che
 html5, se usato come si deve, è piu' accessibile di tutti i framework che
 conosco...
 Io uso python come linguaggio di programmazione e mi stavo chiedendo se
 fosse possibile scrivere app con un layout grafico scritto in html5 e
 javascript per gli eventi (pressione di tasti etc).
 Wxpython, che è quello che uso ora, è abbastanza accessibile, ma non del
 tutto.
 Le grid, per esempio, non lo sono affatto... ma anche i controlli
 combinati come TreeListCtrl etc.
 Cercando in rete avevo trovato PyJs, che faceva, almeno secondo quello che
 c'era scritto, ciò che mi interessava. Ma sotto windows 8.1 ci dev'essere
 qualche problema, perché le applicazioni che eseguono sul desktop non
 partono.
 PyJs utilizza MSHTML.dll, che è un componente COM, per incorporare il
 browser web che ospita i file per il layout.
 Wx ha il suo, ma sembra che possa leggere solo alcuni tag, sicuramente non
 i tag HTML5.
 Qualcuno di voi per caso ne sa di piu', o magari può indirizzarmi?
 Grazie!


hai valutato di strutturare una web app?

per il lato server potresti appoggiarti a django + djangorestframework
e lato server gestisci il salvataggio dei dati e la logica applicativa

poi per il lato client ti appoggi al browser
usando javascript e ajax, e magari facendoti aiutare da un framework
(angular?) ti strutturi un bella single page application

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


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

2015-05-29 Per discussione Marco De Paoli
Il giorno 29 maggio 2015 15:12, Carlo Miron ca...@miron.it ha scritto:

 https://www.youtube.com/user/pyconitalia


fantastico, grazie!
Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Che ne dite di RUST?

2015-05-27 Per discussione Marco De Paoli
2015-05-24 19:58 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:
 https://github.com/rust-lang/rust

http://lucumr.pocoo.org/2015/5/27/rust-for-pythonistas/

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


Re: [Python] Integrare Python in C++

2015-05-27 Per discussione Marco De Paoli
Il 27 maggio 2015 09:11, Marco Giusti marco.giu...@posteo.de ha scritto:

 Salve,

 avete esperienza a proposito in ambiente Windows? Quale è la strada
 consigliata? Ho visto che boost.python può essere una soluzione ma prima
 di gettarmi a capofitto sulla documentazione vorrei il vostro parere.

con boost::python avevamo fatto belle cose alcuni anni fa su Visual Studio 2008
della serie che puoi fare cose abbastanza magiche
(es. definire una classe in C++ e derivarla in python chiamando i
metodi della classe base)

metti in conto:
a) alti tempi di compilazione
b) saper mettere più o meno le mani sulle magie del template
metaprogramming tipiche di boost
c) in caso di errori di compilazione ricevere messaggi infiniti (come
è tipico del template metaprogramming)

per il punto 2 dipende poi quanto ti vuoi spingere...
se ti basta esporre qualche funzione C++ e poterla chimare da python è un conto
se invece vuoi inserirti, da python, nel sistema delle classi che hai
definito in C++ e derivare, ridefinire operatori, fare overload di
funzioni etc. etc. beh, diventa un'altra storia

(...in particolare a proposito dell'overload: ecco un punto in cui
puoi avere qualche rogna perchè python non lo permette...)

e comunque, rispetto a quando ci ho lavorato io con boost::python
- il C++ è andato avanti, e non poco (C++ 11 e C++ 14)
- boost è andato avanti anche lui (noi avevamo usato tipo boost 1.42)

per cui oggi come oggi, se dovessi averne bisogno sarei il primo a
dover rifare un check sullo stato attuale di boost::python

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


Re: [Python] Ancora problemi con le funzioni ...

2015-05-12 Per discussione Marco De Paoli
Il giorno 12 maggio 2015 11:44, Giovanni Porcari 
giovanni.porc...@softwell.it ha scritto:


  Il giorno 11/mag/2015, alle ore 13:21, enrico franchi 
 enrico.fran...@gmail.com ha scritto:
 
 
  2015-05-09 18:45 GMT+01:00 Giovanni Porcari 
 giovanni.porc...@softwell.it:
 aiutarsi con una classe come luogo dove mettere dei metodi e salvare uno
 stato.


+1



 La prossima volta indicherò che lo snippet è solo un esempio 'ad minchiam’
 …


... insomma, un esempio ad minchiam ha scatenato un commento di valore
direi che siamo ad un win-win!

grazie ad entrambi,
Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Django question

2015-05-11 Per discussione Marco De Paoli
2015-05-11 15:52 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:
[snip]


 hoster_address =
 HostersAddress.objects.get(pk=data['hosters_address_id'])
 new_router, created = Routers.objects.get_or_create(
 {
 'uuid': data['uuid'],
 'mac_address': data['mac_address'],
 'hosters_address_id': hoster_address,
 'router_pubblic_ip': data['router_pubblic_ip'],
 'active': data['active']
 }, defaults={
 'uuid': data['uuid'],
 'mac_address': data['mac_address'],
 })


perchè uuid e mac_address li hai indicati in entrambe le liste?

forse intendevi questo?

{
'uuid': data['uuid'],
'mac_address': data['mac_address'],
}, defaults={
'hosters_address_id': hoster_address,
'router_pubblic_ip': data['router_pubblic_ip'],
'active': data['active']
})

ossia cerchi per uuid e mac_address e solo nel caso in cui django debba
crearlo allora specifichi anche hosters_address_id, router_pubblic_ip e
active

può essere?

[snip]


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


Re: [Python] Django question

2015-05-11 Per discussione Marco De Paoli
2015-05-11 16:51 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:


 2015-05-11 16:46 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:

 in effetti provo e ti dico


 provato ma mi da sempre lo stesso errore.
 Premetto che ho controllato e non ci sono array o valori multipli nei
 parametri.
 Non riesco a capire dove possa essere il problema. Ecco il codice
 completo, magari auta

 def add_new_router(request):

 retval = None

 if 'data' in request.POST:

 data = json.loads(request.POST.get('data', ''))

 try:

 hoster_address =
 HostersAddress.objects.filter(pk=data['hosters_address_id'])

 new_router, created = Routers.objects.get_or_create(
 {
 'mac_address': data['mac_address'],
 'uuid': data['uuid'],
 },


acc, qui mac_address e uuid li stai passando dentro un dizionario e invece
sono dei kwargs
https://docs.djangoproject.com/en/1.8/ref/models/querysets/

prova nel formato:
Routers.objects.get_or_create(
mac_address=data['mac_address'],
uuid=data['uuid'],

defaults={
 'hosters_address_id': hoster_address[0].id,
 'router_pubblic_ip': data['router_pubblic_ip'],
 'active': data['active']
 })

 if created == True:

 new_router.save()

 retval = 'OK'

 except Exception, ex:

 print ex
 retval = ex

 return HttpResponse(retval)

 def fill_routers(request):

 for hoster_address in
 HostersAddress.objects.filter(active=True,deleted=False):

 mutable = request.POST._mutable
 request.POST._mutable = True
 request.POST['data'] = json.dumps({
 'mac_address': generate_mac_addr(),
 'uuid': generate_uuid(),
 'hosters_address_id': hoster_address.id,
 'router_pubblic_ip': generate_ip(),
 'active': True,
 })
 request.POST._mutable = mutable
 new_router = add_new_router(request)

 return HttpResponse('OK')

 La fill_routers chiama la funzione dove poi e' contenuta la get_or_create.

 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros

 ___
 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] Vignetta

2015-04-25 Per discussione Marco De Paoli
2015-04-25 7:53 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com:


 https://lh3.googleusercontent.com/-GKYbX3h9wkM/VTsrMZn8gII/AEs/_0Aa0U3neTY/w506-h930/python.jpg


... che sarebbe come dire che tutti i linguaggi sono schizofrenici! :-D

assembly ... mirino telescopico + baionetta!! come dire che miro a 200 mt
per poi fare... un corpo a corpo
C++ ... talmente potente che ha un pugnale anche dalla parte del calcio del
fucile !!! come dire che chi lo imbraccia perde il braccio
il C sembra super potente ed essenziale ... ma non ha la canna per cui la
pallottola esplode in loco

insomma, chi ha fatto il disegno è, come dire, molto ottimista
sull'efficacia dei linguaggi di programmazione :-D

M.



 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros

 ___
 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] vars.items???

2015-04-24 Per discussione Marco De Paoli
Il giorno 24 aprile 2015 11:51, Gabriele Battaglia iz4...@libero.it ha
scritto:

 Scrivo questo codice e non capisco il perchè dell'errore finale.

  d={1:34,2:22}
  d
 {1: 34, 2: 22}
  for k,v in d.items():
 ... print k,v
 ...
 1 34
 2 22
  for k,v in vars.items():
 ... print k,v
 ...
 Traceback (most recent call last):
   File console, line 1, in module
 AttributeError: 'builtin_function_or_method' object has no attribute
 'items'
 ***


in effetti vars è una funzione built-in
https://docs.python.org/2/library/functions.html#vars

per cui quello che ti sta dicendo python è giusto


 Ma vars risulta di type dict(), quindi... non dovrebbe avere anche lui il
 suo bravo .items?


in realtà il valore di ritorno di vars è di tipo dict
vars, in se, è una funzione, per cui devi chiamarla passandogli un
argomento che abbia un attributo __dict__

E se non ce l'ha, come faccio ad iterare attraverso gli elementi di vars?


ma tu cosa volevi fare esattamente?
d.items non ti andava bene?


 Grazie come sempre.

 GB.


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


Re: [Python] django + django-admin-bootstrapped

2015-04-24 Per discussione Marco De Paoli
2015-04-24 17:40 GMT+02:00 Dario Concilio dario.conci...@hotmail.it:

 Ciao a tutti,
 ho scoperto una cosa durante l'installazione.

 Scenario:

- Django 1.8
- Python 3.4.3


 Eseguo pip install django-admin-bootstrapped

 Ecco cosa è accaduto:

 Collecting django-admin-bootstrapped
   Downloading django-admin-bootstrapped-2.4.0.tar.gz (336kB)
 100% || 339kB 356kB/s
 Requirement already satisfied (use --upgrade to upgrade): setuptools in
 c:\pytho
 n34\lib\site-packages (from django-admin-bootstrapped)
 Collecting Django1.8,=1.7 (from django-admin-bootstrapped)
   Downloading Django-1.7.7-py2.py3-none-any.whl (7.4MB)
 100% || 7.4MB 37kB/s
 Installing collected packages: Django, django-admin-bootstrapped
   Found existing installation: Django 1.8
 Uninstalling Django-1.8:
   Successfully uninstalled Django-1.8
   Running setup.py install for django-admin-bootstrapped
 Successfully installed Django-1.7.7 django-admin-bootstrapped-2.4.0

 Verificando su
 https://github.com/django-admin-bootstrapped/django-admin-bootstrapped
 vedo che i requisiti per l'attuale release è Django 1.8
 per Django 1.6 use version 2.3.5 With Django 1.7 use version 2.4.0

 Verifico nel file setup.py e trovo che attualmente la versione di
 django-admin-bootstrapped è la 2.4.99
 ma se faccio pip install django-admin-bootstrapped==2.4.99

 ottengo

 Collecting django-admin-bootstrapped==2.4.99
   Could not find a version that satisfies the requirement
 django-admin-bootstrap
 ped==2.4.99 (from versions: 0.1, 0.1.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4,
 0.4.1, 0.4.
 2, 0.4.3, 1.6.0, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8,
 1.6.9,
 2.0.0, 2.0.1, 2.0.3, 2.0.4, 2.0.5, 2.1.0, 2.1.1, 2.2.0, 2.2.1, 2.3.0,
 2.3.1, 2.3
 .2, 2.3.3, 2.3.4, 2.3.5, 2.4.0)
   No matching distribution found for django-admin-bootstrapped==2.4.99

 Sembra non sia ancora indicizzata


su PyPI vedo che, al momento, l'ultima rilasciata è la 2.4.0

https://pypi.python.org/pypi/django-admin-bootstrapped/

se vuoi la 2.4.99 mi sa che devi prenderla da github...

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


Re: [Python] idio[ma]ticità

2015-04-22 Per discussione Marco De Paoli
Il giorno 22 aprile 2015 18:58, enrico franchi enrico.fran...@gmail.com
ha scritto:

 l'ultimo in ordine di tempo mi è successo con djangorestframework: in base
 ad un parametro many=True mi istanziava a mia insaputa una classe wrapper
 che conteneva la mia
 Questo significava che non avevo alcun modo semplice per fare
 l'override/plug
 Insomma, mi sono convinto che il principio stesso che può succedere di
 chiamare il costruttore di una classe ma qualcuno (presumibilmente per il
 tuo bene) decide di restituirtene un altra, beh, non mi piace granchè


 Ma non e' che tu parli semplicemente di definire __new__? Per quello io ho
 diversi use-case interessante.


cavolo, hai ragione, bastava __new__
ora, calma, aspetta un momento, io ricordo distintamente che usavano una
metaclasse ...
o io ho citato a casaccio oppure loro facevano un overkill

in realtà ricordo solo che volevo uscirne il prima possibile perchè mi ci
ero imbattuto solo per riuscire a far andare come volevo io le browsable
api in un caso particolare
insomma, come dire che mi trovavo con il motore a posto e stavo perdendo
tempo sul tappino degli pneumatici
ricordo vagamente di aver dato qualche martellata e aver fissato in qualche
modo quel disgraziato di tappino
e centrava una metaclasse, giuro

se posso domani ci guardo



 In questi casi tendo ad usare una funzione che faccia da Factory
 Sarò pure meno cool, ma preferisco essere più esplicito e comprensibile


 Il problema e' che c'e' sempre prima o poi il pistola che non la chiama e
 fa a mano. Statistico. E la volta che succede e la cr non passa per le mie
 mani... Il che vuole dire che se e' un nice to have, va bene. Se
 instanziare direttamente rompe la semantica della classe, niente, vai di
 __new__, mi prendo lo sbattimento io, ma almeno non verro' svegliato alle
 quattro di notte.

 Si, ok... potrei sempre avere la famosa _Classe. In questi casi di solito
 basta.


 Al momento non alcun motivo valido per scomodare Tornado nei miei
 progetti: Django con i worker uWSGI mi vanno benissimo


 A me Django sta molto stretto. Non amo particolarmente il fatto che se
 devo fare qualche API call dentro Django rischia di andare in timeout il
 tutto.


api http, intendi? ok, capisco
l'altro timeout sarebbe il caso di client websockets o comet o roba
simile...

beh, certo, in particolare per il secondo caso django non reggerebbe


 Si, certo... dovrei spostare tutta sta roba in Javascript e tanti saluti.


ok, lasciamo perdere le websockets per il momento, ma se hai solo il
problema di operazioni potenzialmente lunghe (es. le api che si diceva)
allora perchè Javascript? basta delegare ad una batteria di processi di
backend
un po' di risorse in più e passa la paura
... oddio, poi cosa si intenda con un po' di risorse in più dipende dalla
scala del problema!
(ogni riferimento al committente di qualcuno di noi è puramente causale :-)
)

ok, introducendo i back-end, l'architettura si incasina: no doubt

ci vorranno come minimo...
coda (redis?) per passaggio parametri fra front-end e backend, supervisor
dei backend (dovrai pur monitorare lo stato dei processi), staging area per
i risultati (su db, ehm, dipende...), notifiche differite all'utente,
gestione delle transazioni db e gestione delle eccezioni (già, perchè se
qualcosa va storto qualcuno presumibilmente lo deve venire a sapere, e
magari senza necessariamente doversi tenere davanti il tail -f di un log
del server)

insomma, ti tieni il buon vecchio sequenziale ma il tuo bel flusso
request/response http e ormai poco più che un vissero felici e contenti
quando ormai le fiabe sei tu a leggerle ad altri

ma so che sto dicendo cose note, diciamo che me le ripeto per convincermi
che sto facendo la scelta giusta

la mia situazione è che, sebbene continui ad essere alla ricerca dell'
architettura di backend pulita definitiva e non sia riuscito a trovarla,
tuttavia l'asincrono (o event driven o callback che dir si voglia) sono
riuscito totalmente ad evitarlo



 Diciamo che ho risentito parlare di Tornado con asyncio e la prima
 domanda da nerd è datemi un occasione per giocarci, se non me la date me
 la invento!


 Caruccio, si. Poi detto fra noi... Asyncio non e' che mi abbia colpito
 troppo.


ah, si? cosa non ti convince?

per quanto mi riguarda io ho perso un po' il treno (per mia fortuna, credo)
di dovermi scontrare con gevent, callback, greenlet, stackless-python,
twisted e compagnia cantante
mi aveva pigliato molto erlang ma alla fine non ho avuto bisogno neanche di
quello

per cui a questo punto spero che asyncio sia il preferably one and only
one method che dovrò veramente studiarmi

arriva un po' tardi? forse

beh, io lo spero che sia one and only one
e se lo fosse, beh... meglio tardi che mai



 5. etc. etc. etc.

 In Python 3 puoi scrivere ...
 E' sintassi valida.


 uhm, questa temo di non averla capita ...


 Eh, non ho un python 3 per fare lo snob.
 Essenzialmente ... e' sintassi valida di Python 3. Presente quando si
 scrive

 class 

Re: [Python] idio[ma]ticità

2015-04-22 Per discussione Marco De Paoli
Il giorno 22 aprile 2015 13:58, Marco De Paoli depao...@gmail.com ha
scritto:


 Ecco un gist con il codice completo di test cases
 https://gist.github.com/depaolim/1dfd6e3d3789047c36b1


... ho pensato che mi farebbero comodo anche le ForeignKey con il caso di
natural key

e poi il tutto potrebbe essere messo in una app che implementa anche un
command da usare da cli

e poi sarebbe carino generalizzare le regole di rimappatura
al momento le cerca nell'attributo XLSX_2_FIELDS del modello, si potrebbe
permettere, che so...
a) di passarle come argomento alla funzione load, ok, questo è facile
b) di specificarle nei settings
c) ma il più divertente è sicuramente la possibilità di leggerle da un
particolare sheet dell'xlsx

Il 3 permette, in pratica da Excel, di compilare un file con i dati e anche
i meta-dati di rimappatura

... ma qua mi sa che sto finendo troppo OT: siamo su full-django. E per
quello esiste django-it

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


Re: [Python] idio[ma]ticità

2015-04-22 Per discussione Marco De Paoli
Il giorno 21 aprile 2015 11:27, Marco De Paoli depao...@gmail.com ha
scritto:


P.S. ... se posso posto lo snippet finale con anche la gestione delle FK


ecco qua:

@django.db.transaction.atomic

def load_from_xlsx(cls, rows):
fs = {c.column: cls.XLSX_2_FIELDS.get(c.value) for c in rows[0]}
cls.objects.all().delete()
cls.objects.bulk_create([
cls(**{fs[c.column].get_attname(): c.value for c in r if
fs[c.column]})
for r in rows[1:]]
)


Ed ecco un esempio d'uso:

wb = openpyxl.load_workbook(myfile.xlsx)
load_from_xlsx(MyModel, wb.active.rows)


L'unica altra cosa che serve è che MyModel abbia l'attributo XLSX_2_FIELDS
per stabilire la rimappatura tra: nomi delle colonne xlsx e nomi dei field

Ecco un gist con il codice completo di test cases
https://gist.github.com/depaolim/1dfd6e3d3789047c36b1

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


Re: [Python] idio[ma]ticità

2015-04-21 Per discussione Marco De Paoli
Il giorno 20 aprile 2015 17:44, Massimiliano della Rovere 
massimiliano.dellarov...@gmail.com ha scritto:

 Ma allora non ti conviene ciclare solo sulle colonne presenti in CN
 (avendo cura di inserire in CN tutte quelle che ti servono) ?


le colonne da incrociare sono infatti: quelle di CN, quelle dell'header
del xlsx, quelle che trovo nelle righe
e il giro, alla fine della fiera, è semplicissimo

1. processo la cella D13
2. ok, cosa mi dice l'header della colonna D ? CODICE ARTICOLO
3. ok, cosa mi dice il dic di rimappatura CN per il nome CODICE ARTICOLO?
article_id

ok, allora il valore della cella D13 lo devo mettere nel campo article_id

tutto qui
cercavo il modo più idiomatico per scrivere questa semplicissima doppia
indirezione


grazie a tutti per i vostri interventi,
Marco

P.S. ... se posso posto lo snippet finale con anche la gestione delle FK
ma ahimè, mi ci sto appassionando troppo, mentre dovrei arrivare ad una
soluzione ragionevole e poi passare ad altro
adesso per esempio mi è venuto in mente che per farlo veramente bulk
dovrei fare il truncate della tabella, generare un csv e poi far fare il
COPY a postgres
(COPY che, per inciso, è una vera scheggia: impressionante!)
Ma, mannaggia a me, in questo caso ho bisogno solo di buttare dentro a
martellate qualche decina di migliaia di record
Uno spooler di uWSGI e qualche minuto di elaborazione e l'utente è
contentissimo anche se passo per l'ORM, in fondo che gliene frega a lui,
basta che le righe ci siano
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] idio[ma]ticità

2015-04-21 Per discussione Marco De Paoli
ciao Enrico,
grazie delle risposte

in realtà volevo fare alcuni esempi random su tecniche un po' esoteriche
rispetto al mio operare corrente
nel mio lavoro di ogni giorno cerco di mantenermi molto KISS
poi arrivano i talk di pycon, ti aprono un po' le vedute e finisci a volte
per riconsiderare pattern o tecnologie che normalmente lascierei un po' nel
cassetto o in backlog



Il giorno 20 aprile 2015 18:56, enrico franchi enrico.fran...@gmail.com
ha scritto:


 2015-04-20 14:50 GMT+01:00 Marco De Paoli depao...@gmail.com:

 1. potrei farlo con una meta classe


 Pessima idea. Ci sono casi in cui le meta-classi sono il sistema piu'
 rapido e robusto per avere una certa cosa. In generale sono un overkill. In
 generale, non sono la soluzione giusta.


concordo, nei casi in cui ho visto usare una metaclasse la soluzione
adottata non mi è piaciuta molto
l'ultimo in ordine di tempo mi è successo con djangorestframework: in base
ad un parametro many=True mi istanziava a mia insaputa una classe wrapper
che conteneva la mia
Questo significava che non avevo alcun modo semplice per fare
l'override/plug
Insomma, mi sono convinto che il principio stesso che può succedere di
chiamare il costruttore di una classe ma qualcuno (presumibilmente per il
tuo bene) decide di restituirtene un altra, beh, non mi piace granchè
In questi casi tendo ad usare una funzione che faccia da Factory
Sarò pure meno cool, ma preferisco essere più esplicito e comprensibile



 2. potrei inserire un server tornado giusto per non si sa mai


 Non lo farei. Uno strato di architettura per non si sa mai e' comunque
 uno strato di architettura che si puo' rompere domani prima di avere
 provveduto ad un qualunque beneficio per il customer.


Sì, perfettamente daccordo. Il per non si sa mai era una battuta
Al momento non alcun motivo valido per scomodare Tornado nei miei progetti:
Django con i worker uWSGI mi vanno benissimo
Non uso websockets o roba simile per cui sopravvivo benissimo
Diciamo che ho risentito parlare di Tornado con asyncio e la prima domanda
da nerd è datemi un occasione per giocarci, se non me la date me la
invento!
Poi però mi sono calmato e sono tornato ad occuparmi di importazioni di
file Excel ;-)



 4. dovrei usare pytest e rifattorizzare tutti i setUp/tearDown del mio
 progetto


 Questa invece e' una buona idea. Cioe'... rifattorizzare tutto non
 necessariamente lo e'. Ma cominciare ad usare PyTest lo e'.


Il talk di Simone Dalla mi ha in effetti convinto a provarlo il prima
possibile


 Tipo una volta mi venne la balzana idea di convertire tutta una test-suite
 da nose a py.test; ora, i test vennero meglio, piu' chiari piu' robusti. Ci
 persi un monte di tempo. Adesso quando devo lavorare ad un progetto con
 test nose (o unittest) la mia policy e':

 1. continuo a scrivere nose(unittest) finche' non ho un buon motivo
 2. scrivo la parte con il buon motivo con py.test
 3. a tempo morto riguardo i test, butto nel cesso i test vecchi e poco
 significativi (cosa che fa bene comunque), cerco di individuare dei pattern
 che beneficiano davvero di py.test e riscrivo quelli, un po' per volta.
 4. ogni volta che tocco qualche test specifico, lo riscrivo con py.test
 (ma solo dopo che il procedimento di introduzione di py.test e' iniziato,
 motivato da una necessita' oggettiva).


Il mio piano che avevo in mente è più o meno simile. Tenendo conto delle
retrocompatibilità di py.test rispetto a unitest dovrei riuscire ad
introdurlo in modo abbastanza indolore e poi migrare un po' alla volta,
dove mi serve, usando fixture al posto di setUp/tearDown
Rifattorizzare di botto tutti i setUp/tearDown dei miei progetti sarebbe
invece, nel mio caso, un esagerazione



 5. etc. etc. etc.

 In Python 3 puoi scrivere ...
 E' sintassi valida.


uhm, questa temo di non averla capita ...



 6. ah, già, anche... dovrei dare un occhiata al progetto pypy


 Ottima idea.


già, indubbiamente, me lo dico da tempo
ma dato che i miei progetti sono soprattutto DB-bound (si può dire?)
guadagnare sul CPU-time lato pure-python sarebbe più o meno inifluente
Ma vedi sopra per il ... datemi un occasione per giocarci :-)

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


[Python] idio[ma]ticità

2015-04-20 Per discussione Marco De Paoli
dopo il talk di Alex su codice pythonico/idiomatico...
beh, non posso lasciar passare il seguente caso senza chiedervi un opinione

dunque il caso è questo
ho un file Excel xlsx con righe da caricare una a una su DB

non consigliatemi di utilizzare un ETL, perchè non è questo il punto
ah, a proposito, ho scoperto che per mangeggiare i file xlsx, openpyxl va
alla grande

tornando a noi...
la prima riga dell'xlsx è un intestazione che stabilisce i nomi dele colonne

avevo chiesto che usassero i nomi uno a uno con i nomi dei campi su db.
ma, no, sarebbe stato troppo semplice e logico, per cui i nomi sono a dir
poco fantasiosi e volatili

Indi per cui ho un dict che rimappa nomi-colonne-xlsx con nomi-campi-db

XLSX_COLUMN_NAMES = {
'IL nome' : 'name',
'RIFERIMENTO a GIGIO': 'gigio_id',
}

il piano per il caricamento dati è il seguente: iterare sulle righe
dell'xlsx, costruire un kwargs, fare l'insert
abbastanza KISS, insomma

ok, show me the code!

import openpyxl as pyx
from .models import MyModel

CN = XLSX_COLUMN_NAMES

wb = pyx.load_workbook(sample.xlsx))
ws = wb['DB']
columns = {c.column: CN.get(c.value) for c in ws.rows[0]}


MyModel.objects.all().delete()
for row in
ws.rows[1:]:
kwargs = {columns[c.column]: c.value for c in row}

kwargs.pop(None)
MyModel(**kwargs).save()


le istruzioni per il db sono per django, e per di più sono un po' niubbe
(nel senso che si poteva fare qualcosa di più bulk)
ma non è la parte importante: non fanno altro che cancellare tutti i record
e poi inserirli uno per uno

E' quel kwargs.pop(None) che non mi piace
Ci ho girato un po' intorno, ma non mi viene in mente come rimuoverlo a
meno di introdurre degli if che mi piacciono ancora meno

voi che ne dite?
Marco

P.S. se non conoscete openpyxl vi dico che l'attributo value è il
contenuto della cella, mentre l'attributo column è la sua coordinata x in
notazione-excel, ossia A, B, etc.
Per esempio, la cella D13 ha cell.column == D

P.P.S. boh, mi sa che vi ho dato un po' troppo contesto rispetto al
problema vero e proprio.
Ma diciamo che è stata anche l'occasione per citare qualche tecnologia che
mi ha fatto comodo: openpyxl e ... Django!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Proposta di collaborazione

2015-04-20 Per discussione Marco De Paoli
Il giorno 20 aprile 2015 12:11, Roberto Polli robipo...@gmail.com ha
scritto:

  poi Postgres... l'Open Source puo' essere molto
  migliore del closed.
 in teoria mysql è più open di postgres, visto che è GPL2 vs MIT ;)


... beh, intendiamoci sul senso di open  ;-)
postgres è tipo BSD/MIT con una licenza di 23 righe comprese le vuote

http://www.postgresql.org/about/licence/

in pratica ci fai tutto quello che vuoi
compreso forkarlo e/o brandizzarlo e/o venderlo etc. etc.

capisco che Stallman non sarebbe forse del tutto daccordo
ma, dal mio punto di vista... più open di così non si può

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


Re: [Python] idio[ma]ticità

2015-04-20 Per discussione Marco De Paoli
2015-04-20 15:11 GMT+02:00 Marco Beri marcob...@gmail.com:

 2015-04-20 14:19 GMT+02:00 Marco De Paoli depao...@gmail.com:

 kwargs = {columns[c.column]: c.value for c in row}
 kwargs.pop(None)


 Marco,
 mi sfugge qualcosa oppure questo non farebbe la stessa cosa anche se in
 maniera meno efficiente?

 kwargs = {columns[c.column]: c.value for c in row if
 columns[c.column]}


la semantica è esattamente quella che hai scritto tu
... per cui: no, non ti sfugge nulla

ma sapevo che eravamo tutti un po in astinenza di trick/sfide dopo quella
sull' eseguire il codice della borsa pycon :-)
per cui ho buttarne la una...
posso eliminare quel pop? (che, come dice giustamente Riccardo è un WTF
assicurato) e non usare neppure un if?

mi sono detto: vuoi vedere che quei draghi della lista python mi tirano
fuori un, che ne so, itertools.magic_method che mi fa tutto in O(1) con una
sola riga di codice? :-)

...ok, proviamo a rilanciare...
in questo caso in un ambito un po' più specifico django
mettiamo che una delle colonne sia un FK
in tal caso il valore deve essere considerato key e bisogna fare un lookup
del model
Ovviamente serve giocare un po su _meta e fare introspezione sui fields...

...no, no, no... qua mi accorgo che il pycon mi ha rovinato!
oggi non riesco a scrivere una riga di codice giusto per campare senza
che mi scatti qualche paranoia sull'ipotesi [scegliere a caso tra le
seguenti]:
1. potrei farlo con una meta classe
2. potrei inserire un server tornado giusto per non si sa mai
3. potrei fare una tabella costituita da un unico campo jsonb e poi
(presumibilmente) ... riscrivere tutta la mia logica applicativa
4. dovrei usare pytest e rifattorizzare tutti i setUp/tearDown del mio
progetto
5. etc. etc. etc.
6. ah, già, anche... dovrei dare un occhiata al progetto pypy

giuro, alcune di queste idee mi vengono in mente solo in un particolare
periodo dell'anno
normalmente riesco anche a scrivere codice onesto e che funziona, senza
bisogno di scomodare domande tipo: ma qui i type hint potrebbero farmi
comodo?

oh, cavolo! dottore, mi dica, è grave?!?
quanto durerà l'effetto pycon?!? :-D
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] MySQL vs PgSQL: ne resterà solo uno! Re: Proposta di collaborazione

2015-04-20 Per discussione Marco De Paoli
Il giorno 20 aprile 2015 16:00, Roberto Polli robipo...@gmail.com ha
scritto:

 Il 20 aprile 2015 14:39, Carlos Catucci carlos.catu...@gmail.com ha
 scritto:
   dalla 9.3 (ma molto piu' con la 9.4) puoi
  usarlo come un NoSql con prestazioni
 Bello.

  posso avere tabelle miste
  ovevro alcuni campi relazionali ed altri json e fare ricerche miste.
 Come vengono indicizzati i campi json?


guardati l'intervento di Marco Nenciarini all'ultimo pycon
https://www.pycon.it/conference/talks/hstore-json-e-jsonb-dati-non-strutturati-ad-alte-performance-1

ehm, qualcuno sa dove sono i video?
sono già stati pubblicati?

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


Re: [Python] idio[ma]ticità

2015-04-20 Per discussione Marco De Paoli
ciao Massimiliano,

Il giorno 20 aprile 2015 15:28, Massimiliano della Rovere 
massimiliano.dellarov...@gmail.com ha scritto:


 non mi è chiara una cosa: come finisce quel None nel descrittore delle
 colonne dell'xslx/db?


colonne presenti nell'xlsx e che non vanno caricate

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


Re: [Python] idio[ma]ticità

2015-04-20 Per discussione Marco De Paoli
Il giorno 20 aprile 2015 15:04, Riccardo Magliocchetti 
riccardo.magliocche...@gmail.com ha scritto:

[snip]

 E' quel kwargs.pop(None) che non mi piace
 Ci ho girato un po' intorno, ma non mi viene in mente come rimuoverlo a
 meno di
 introdurre degli if che mi piacciono ancora meno


 Potevi mettere un commento sul perchè lo stai chiamando quel pop, tra un
 mese quello è un WTF assicurato. A quanto capisco io è perchè per qualche
 motivo ti ritrovi columns[c.column] a None. Questo lo fai probabilmente per
 prevenire di esplodere quando hai righe malformate con testo su colonne che
 non hanno intestazione.


oppure per il caso in cui nell'xlsx ci sono colonno che vanno trascurate
nel caricamento

Se è questo non troverei vergogna a mettere un *esplicito* if c.column in
 columns nella dict comprehension di kwargs.


sono daccordo!
ma vedi la mia risposta a Beri per inqudrare il contesto mentale :-)

[snip]

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


Re: [Python] esecuzione remota su windows

2015-02-02 Per discussione Marco De Paoli
Il 02/feb/2015 22:04 Balan Victor balan.vict...@gmail.com ha scritto:



 Il giorno 2 febbraio 2015 17:28, Marco De Paoli depao...@gmail.com ha
scritto:

 ciao lista,
 io vorrei, da linux, lanciare un comando remoto su una macchina windows

 Si tratta di lanciare un exe a riga di comando e poi intercettare
valore di ritorno, stdout/stderr

 Tocca per forza installare un daemon ssh su windows? e poi usare es.
paramiko?

 ... è che vorrei evitare di installare un intero server ssh sulla
macchina win

 E non vorrei neanche installare Celery...

 Insomma, mi sa che voglio troppo :-)

 Penso che qualcosa su win andrà installato, giusto?

 Qualche idea? TIA!


 che versione di windwos hai?

2008 o forse 2012


 c'è questo che è simile a psexec
https://micksmix.wordpress.com/2012/08/09/winexe-a-psexec-like-client-for-accessing-windows-from-linux/

Pare però ci voglia tutto un ambaradan di server (samba? )


 poi c'è
https://4sysops.com/archives/three-ways-to-run-remote-windows-commands/#method-2-use-wmi-to-run-remote-commands
che usa wmi

Non ho capito se si può lanciare eseguibili generici oppure solo operazioni
amministrative



 altrimenti sei hai un  win 2008 o maggiore usa powershell

Powershell dici?
Ok, ci vuole comunque un agent in ascolto, però

Intendevi una cosa del genere?
https://technet.microsoft.com/en-us/library/hh831611.aspx

Domani faccio qualche prova, 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] esecuzione remota su windows

2015-02-02 Per discussione Marco De Paoli
ciao lista,
io vorrei, da linux, lanciare un comando remoto su una macchina windows

Si tratta di lanciare un exe a riga di comando e poi intercettare valore
di ritorno, stdout/stderr

Tocca per forza installare un daemon ssh su windows? e poi usare es.
paramiko?

... è che vorrei evitare di installare un intero server ssh sulla macchina
win

E non vorrei neanche installare Celery...

Insomma, mi sa che voglio troppo :-)

Penso che qualcosa su win andrà installato, giusto?

Qualche idea? TIA!


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


Re: [Python] Python per App Engine

2015-01-29 Per discussione Marco De Paoli
Il giorno 29 gennaio 2015 13:16, Massimiliano Pippi mpi...@gmail.com ha
scritto:

 Ciao a tutti e perdonatemi lo shameless plug.

 Ieri è uscito il mio libro, intitolato Python for Google App Engine,
 potete trovare i dettagli qui:
 https://www.packtpub.com/virtualization-and-cloud/python-google-app-engine



Bravo Max, complimenti!


 Mi è costato sei mesi di ogni stilla di tempo libero, vacanze incluse,
 e volevo condividere questo traguardo con la community italiana, del
 resto si può dire che tutto è partito da qui diversi anni fa.


adesso devi solo ... metterti a preparare le relative slide ;-)


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


Re: [Python] Best practices per import

2015-01-23 Per discussione Marco De Paoli
Il giorno 22 gennaio 2015 18:33, Diego Barrera diegonebarr...@yahoo.it ha
scritto:

 Buona sera a tutti!
 Solitamente utilizzo e vedo utilizzato import all'inizio del modulo,
 ma a volte mi e' capitato sia di scrivere che di leggere import
 all'interno di funzioni o classi.
 L'unico vantaggio che vedo nel caso di utilizzo all'interno
 di una funzione (o classe) e' che se non viene richiamata la funzione,
 si evita l'import.


l'import locale potrebbe essere a volte indispensabile in funzioni che si
basano su moduli non disponibili su una particolare piattaforma

questo permette di eseguire anche su piattaforme/s.o. che non hanno tutti i
moduli

Immagina una situazione del genere:
Il mio applicativo dispone di una funzionalità per l'export in formato Ms
Access - MDB.
Se scrivo istruzione import pywin32 esclusivamente dentro la funzione che
implementa l'export, allora il mio programma generale rimane eseguibile
anche su linux (a patto di non usare, ovviamente, quella specifica funzione)

L'alternativa sarebbe mettere l'import in testata file avendo l'accortezza
di racchiuderlo in un try/except
Ma a me sembra meno logica

ot
... Ci sarebbe anche un altra alternativa
L'altra alternativa è snobbare Ms-A-Cess e convincerli a passare a
SQLite... ma qui finiamo OT
E poi a me Access ha dato qualcosina da mangiare quando ero programmatore
in erba
per cui, se mi chiedono una cosa del genere, mi tocca pure fare il
comprensivo in nome dei vecchi tempi
/ot

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


  1   2   3   >