[Python] Pandas ed Encoding

enrico franchi enrico.franchi a gmail.com
Mer 10 Feb 2016 01:55:03 CET


2016-02-09 11:19 GMT+00:00 Pietro Battiston <ml a pietrobattiston.it>:

> Sarei curioso di sapere cosa ti abbia dato questa impressione al volo.
> Es. disorganizzazione del flow? Pochi commenti? Troppe funzioni a spasso?
> Tutto ciņ ed altro?
>

Mah... un insieme di cose. Intanto non sono mai stato contento dell'API.
Tenta di essere smart in molti modi e risulta essere semplicemente
complicata da usare.

Ovviamente questa tendenza se la portano in giro un po' ovunque... per cui
per dire hai signatures veramente inbordellate. Tipo a sboccio i readers
hanno una cinquantina di parametri. E per risolvere il problema della code
duplication fanno una higher order function (di 50 parametri) che ti
ritorna una funzione (di 50 parametri) che fa un minimo di parameter
mangling, poi ci costruisce un dizionario gigantesco che passa come
argomento alla funzione effettiva "generica" che fa il lavoro. La quale
funzione e' lunga tipo 260 righe.

Ora... hai due approcci per testare tutto questo. O testi solo le funzioni
"pubbliche" (e.g., read_cvs), oppure testi la funzione effettiva _read. Che
ha 50 parametri. Ora, nell'ipotesi semplificativa che ciascuno di questi
parametri abbia due valori rilevanti, stiamo parlando di 2^50 combinazioni
di input. Che e' nell'ordine di grandezza di mille volte l'eta'
dell'universo. Ora, non e' detto che tutte le combinazioni percorrano path
diversi (ovviamente impossibile, visto che la funzione e' solo 260
righe)... ma allora perche' non raggruppare i parametri in pochi set noti?
Se invece testi solo la roba pubblica, rischi di lasciare combinazioni non
testate che magari mordono. Mi sembra che qualcuno si sia scordato di
provare a modellare sta roba ad oggetti... ecco.Non che sia un gran fan
della programmazione ad oggetti... ma anche in Haskell se uno vede gruppi
di parametri che vanno insieme si fa una qualche struttura che li
rappresenta.


-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160210/e347e1ed/attachment.html>


Maggiori informazioni sulla lista Python