Inviare messaggi tramite app IO a partire da dati contenuti in file .csv

Overview

parlaConIO

Inviare messaggi tramite app IO a partire da dati contenuti in file .csv

--> Nessun obbligo, ma in caso di clonazione o uso del programma ci farebbe piacere che lasciaste due righe nel Libro degli ospiti o su forum.italia.it <--

--> L'uso di parlaConIO è "a rischio e pericolo" di chi lo esegue, non possiamo fornire alcuna garanzia. <--

Script Python per inviare messaggi verso l'app IO partendo da dati contenuti in file CSV

Il progetto comprende degli script Python per inviare messaggi verso l'app IO a partire da dati contenuti in file CSV, tipicamente estratti dai software gestionali in uso presso le amministrazioni. Gli script funzionano da riga di comando e dovrebbero essere indipendenti dal sistema operativo in uso (Windows, Linux). Le operazioni di composizione e invio dei messaggi sono tracciate e memorizzate su log e file di report in formato testo o json. E' incluso anche uno script per la verifica dell'invio di un lotto (=blocco di messaggi ottenuti a partire da un file CSV con i dati).

Gli script consentono di realizzare un dialogo efficace con le API esposte dal sistema app IO, senza sostenere costi di integrazione degli applicativi in uso. Infatti, è sufficiente essere in grado di estrarre dagli applicativi i dati necessari alla composizione dei messaggi secondo un template prestabilito e lanciare lo script. L'assenza di un'interfaccia grafica rende l'uso degli script non eccessivamente "friendly" per gli utenti e si consiglia di riservare l'uso degli script al personale tecnico informatico delle amministrazioni o comunque a utenti esperti. Per ogni lotto, nella stessa directory di installazione, è creata una cartella destinata ad accogliere log e report prodotti durante le fasi di composizione, invio e verifica.

Per utilizzare gli script è necessario:

  • installare l'ambiente Python (www.python.org) e il modulo 'requests' (comando: py/python -m pip install requests);
  • copiare i file di definizione delle funzioni e gli script in una cartella/directory (es.: c:\parlaConIO in ambienti Windows), cioè fare un clone del repository;
  • rimuovere la parte "RIMUOVIMI." dove presente nei nomi dei file;
  • personalizzare i file di configurazione (principalmente quelli appena rinominati);
  • gli script si lanciano da riga di comando, tipicamente indicando come argomento il file CSV da elaborare. In assenza di argomento o in caso di argomento errato, lo script guida l'utente alla sua corretta invocazione.\

I CSV proposti come modello e le regole per interpretarli al fine di comporre i messaggi (payload dell'interrogazione delle API di IO) sono modellati sulle esigenze del Comune di Rivoli. Tuttavia è possibile modificare le regole di composizione dei messaggi intervenendo sulle funzioni definite preparaDati.py e/o negli script "inviaLotto*". L'ordine delle chiavi nei file CSV non è vincolante e le chiavi necessarie alla composizione del messaggio possono coesistere con altre.

Gli script sono migliorabili e in evoluzione. Al momento mancano meccanismi per la gestione efficiente delle eccezioni durante il dialogo con le API di IO. Per esempio, in caso di mancanza di collegamento di rete, il modulo requests restituisce un'eccezione che causa l'interruzione del programma. In tal caso è necessario interrogare i log per capire se e quali messaggi sono stati inviati, eliminare le relative righe dal CSV e lanciare nuovamente lo script di invio. Un evento del genere non consente nemmeno la corretta verifica dello stato di consegna dei messaggi inviati prima dell'interruzione del programma.

Per richieste di assistenza, suggerimenti, proposte e ogni altra discussione sul progetto si rimanda alla sezione "issues" del repository.

Il progetto è ideato e mantenuto dal Comune di Rivoli, Servzio SIA (Sistemi Informativi e Archivistici) ed è aperto alla collaborazione delle amministrazioni interessate.

  • parlaConIO.py implementa le funzioni di dialogo con IO con relative API key e di logging.

  • preparaDati.py definisce le caratteristiche più legate alle operazioni sui file usati come fonte di dati o template per i messaggi.

  • inviaLotto* sono script specifici per l'invio di lotti di messaggi di un determinato servizio IO (indicazioni nel preambolo del codice); dove possibile una procedura interattiva guida nell'associazione fra le "colonne" del file CSV e le variabili presenti nel template del messaggio. Gli script si eseguono indicando come argomento il nome del file csv con i dati da processare. Esempio "py ./inviaLottoScadenzaCI.p ./scadenzaCI.csv".

  • verificaConsegnaLotto.py: consente di verificare lo stato di consegna di un lotto. Richiede come argomento il file "...-EsitoInvii.json" presente nella cartella di lotto del lotto che si vuole verificare.

STRUMENTI DI SUPPORTO, utili a fini statistici e per indirizzare le scelte.

verificaListaCF.py: esegue la verifica dell'iscrizione a un servizio IO (proposto fra quelli configurati in parlaConIO.py). In input richiede un CSV con una "colonna" che contiene i codici fiscali di cui verificare l'iscrizione. Durante l'esecuzione chiede di indicare quale chiave del CSV contiene il codice fiscale. Restituisce il risultato nella cartella del lotto (cartella con suffisso "verificaCF-").

verificaNucleiIO: estensione del precedente, controlla inoltre per quanti nuclei familiari è presente almeno una installazione di IO iscritta al servizio indicato. Si tratta di una funzione utile per i comuni, per valutare il livello di diffusione di IO sul proprio territorio. Lo script si attende in input un file CSV con due colonne, la prima con il codice fiscale la seconda con un codice identificativo del nucleo familiare. Il conteggio dei nuclei familiari con IO è annotato nel file di log, che si trova nella cartella del lotto.

FILE DI CONFIGURAZIONE (i file presenti, per i quali occorre eliminare la stringa "RIMUOVIMI" nel nome del file, sono da personalizzare):

  • serviziIO.py: contiene le chiavi per i servizi IO configurati nel backoffice di IO e alcuni parametri utili per la gestione dell'operatività
  • serviziDiIncasso.py: contiene le scioglimento dei codici dei servizi di incasso presenti nell'implementazione PagoPA dell'ente

FILE CSV DI PROVA: Sono presenti alcuni file CSV di prova con codici fiscali fittizi, alcuni riconosciuti validi da IO e utilizzabili per test (es.: AAAAAA00A00A000A)

****SPAZI DI DISCUSSIONE***

Si invita a lasciare un saluto o un commento nel Libro degli ospiti: sono particolarmente graditi commenti, impressioni e suggerimenti da parte di chi opera all'interno della pubblica amministrazione e si trova ad affrontare l'integrazione di app IO nella propria organizzazione ma anche di chi opera nel settore a livello professionale.

E' inoltre attiva una discussione su forum.italia.it.

Owner
Francesco Del Castillo
Funzionario Servizio sistemi informativi e archivistici della Città di Rivoli. Matematico di formazione, records manager per passione.
Francesco Del Castillo
Uma versão em Python/Ursina do aplicativo Real Drum (android).

Real Drum Descrição Esta é uma versão alternativa feita em Python com a engine Ursina do aplicatio Real Drum (presente no Google Play Store). Como exe

hayukimori 5 Aug 20, 2022
Hashcrack - A non-object oriented open source, Software for Windows/Linux made in Python 3

Multi Force This project is a non-object oriented open source, Software for Wind

Radiationbolt 3 Jan 02, 2023
Repository for my Monika Assistant project

Monika_Assistant Repository for my Monika Assistant project Major changes: Added face tracker Added manual daily log to see how long it takes me to fi

3 Jan 10, 2022
A Unified Framework for Hydrology

Unified Framework for Hydrology The Python package unifhy (Unified Framework for Hydrology) is a hydrological modelling framework which combines inter

Unified Framefork for Hydrology - Community Organisation 6 Jan 01, 2023
1000+ ready code templates to kickstart your next AI experiment

AI Seed Projects Start with ready code for your next AI experiment. Choose from 1000+ code templates, across a wide variety of use cases. All examples

BlobCity, Inc 98 Jan 03, 2023
Git Hooks Tutorial.

Git Hooks Tutorial My public talk about this project at Sberloga: Git Hooks Is All You Need 1. Git Hooks 101 Init git repo: mkdir git_repo cd git_repo

Dani El-Ayyass 17 Oct 12, 2022
An assistant to guess your pip dependencies from your code, without using a requirements file.

Pip Sala Bim is an assistant to guess your pip dependencies from your code, without using a requirements file. Pip Sala Bim will tell you which packag

Collage Labs 15 Nov 19, 2022
Open source tools to allow working with ESP devices in the browser

ESP Web Tools Allow flashing ESPHome or other ESP-based firmwares via the browser. Will automatically detect the board type and select a supported fir

ESPHome 195 Dec 31, 2022
Estimating the potential photovoltaic production of buildings (in Berlin)

The following people contributed equally to this repository (in alphabetical order): Daniel Bumke JJX Corstiaen Versteegh This repository is forked on

Daniel Bumke 6 Feb 18, 2022
A module that can manage you're gtps

Growtopia Private Server Controler Module For Controle Your GTPS | Build in Python3 Creator Information

iFanpS 6 Jan 14, 2022
Purge all transformation orientations addon for Blender 2.8 and newer versions

CTO Purge This add-on adds a new button to Blender's Transformation Orientation panel which empowers the user to purge all of his/her custom transform

MMMrqs 10 Dec 29, 2022
A password genarator/manager for passwords uesing a pseudorandom number genarator

pseudorandom-password-genarator a password genarator/manager for passwords uesing a pseudorandom number genarator when you give the program a word eg

1 Nov 18, 2021
An Insurance firm providing tour insurance is facing higher claim frequency

An Insurance firm providing tour insurance is facing higher claim frequency. Data is collected from the past few years. Made a model which predicts the claim status using CART, RF & ANN and compare t

1 Jan 27, 2022
A collection of existing KGQA datasets in the form of the huggingface datasets library, aiming to provide an easy-to-use access to them.

KGQA Datasets Brief Introduction This repository is a collection of existing KGQA datasets in the form of the huggingface datasets library, aiming to

Semantic Systems research group 21 Jan 06, 2023
ViberExport - Export messages from Viber messenger using viber.db file

📲 ViberExport Export messages from Viber messenger using viber.db file ⚡ Usage:

7 Nov 23, 2022
A StarkNet project template based on a Pythonic environment

StarkNet Project Template This is an opinionated StarkNet project template. It is based around the Python's ecosystem and best practices. tox to manag

Francesco Ceccon 5 Apr 21, 2022
Packages of Example Data for The Effect

causaldata This repository will contain R, Stata, and Python packages, all called causaldata, which contain data sets that can be used to implement th

103 Dec 24, 2022
Union oichecklists For Python

OI Checklist Union Auto-Union user's OI Checklists. Just put your checklist's ID in and it works. How to use it? Put all your OI Checklist IDs (that i

FHVirus 4 Mar 30, 2022
Dockernized ZeroTierOne controller with zero-ui web interface.

docker-zerotier-controller Dockernized ZeroTierOne controller with zero-ui web interface. 中文讨论 Customize ZeroTierOne's controller planets Modify patch

sbilly 209 Jan 04, 2023
Multtable is a collection of multiplication table generators in various languages.

Multtable Multtable is a collection of multiplication table generators in various languages. This project was created as a joke based on one of my bro

pollen__ 7 Mar 05, 2022