[Python] Progetto SW

Andrea D'Amore and.damore a gmail.com
Mar 27 Ott 2015 11:00:46 CET


2015-10-27 0:38 GMT+01:00 Marco Soldavini <magyar1886 a gmail.com>:
> I dati in ingresso provengono dai file CSV (in maniera diciamo discreta ogni
> tot tempo

Sincrona o asincrona?

> questi file vengono creati in una cartella da una applicazione
> esterna e devono essere analizzati e inseriti con una query dentro il server
> SQL)

> Oltre al file CSV l applicazione deve fare polling sul server OPC per
> leggere dati e memorizzarli (per successivo invio su SQL) oppure per fare
> trigger di ulteriori azioni

Questo passaggio è alternativo al file CSV, cioè non leggi da OPC per
poi scrivere il file CSV e tornare al punto precedente?

> Inoltre l applicazione deve essere in grado di generare un file PDF dal
> server MYSQL contenente sia dati in forma tabellare che plot con la
> generazione attivata in base ad un trigger esterno.

> Sapete dirmi in quali punti vedete forte python e quali classi / librerie mi
> consigliate considerando che devo fare:
>
> parsing CSV
> interfacciarmi in lettura e scrittura con SQL
> generare PDF

I tre compiti che hai elencato sono semplici di per sé, vedo che ti
hanno già suggerito il modulo csv della libreria standard (ovviamente)
e reportlab, per SQL potresti usare un ORM come SQLAlchemy che ti
fornisce ad un livello di astrazione più alta  e ti permette di
nascondere il dbms che scegli. Il problema è che richiede un
apprendimento iniziale, per cui se a te serve fare "solo xSQL, solo in
questa occasione e poi mai più-issimo" magari ti conviene piuttosto
usare un modulo specifico per il tuo db e scrivere SQL a mano, e tutti
ti sono vicini in questo difficile momento. Per il plot matplotlib.

Secondo me la cosa fondamentale in questa applicazione, che immagino
sia un demone dato che parli di background, è l'interazione con i
processi esterni e qualcuno (non ricordo se su questa lista o su
altra) ha suggerito Celery.
Magari qualcuno che l'ha usato (io purtroppo no) può intervenire a
riguardo, è un tema interessante.

Per il trigger esterno pensi a qualcosa tipo  un server TCP/IP che
ascolta o IPC con i segnali?


-- 
Andrea


Maggiori informazioni sulla lista Python