/NormaScraperApp

Primary LanguagePythonCreative Commons Zero v1.0 UniversalCC0-1.0

Contributors Forks Stargazers Issues CC0-1.0 License


Logo

NORMASCRAPER - BETA

Semplice interfaccia per accedere al sito del governo italiano Normattiva


· Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

NormaScraperApp è un'applicazione Python che fornisce un'interfaccia utente per accedere a Normattiva, il sito del governo italiano che ospita la legislazione nazionale. L'applicazione permette agli utenti di cercare atti legislativi specifici, visualizzare i dettagli e salvare i risultati.

  NormaScraperApp
  ├── LICENSE.txt
  ├── NormaScraper-BetavX.X.X.zip
  ├── NormaScraper.py
  ├── BrocardiScraper.py
  ├── README.md
  ├── atti_scaricati
  │   ├── cost.xml
  │   └── test.xml
  ├── resources
  │   ├── configurazione.yaml
  │   ├── icon.icns
  │   ├── logo.png
  │   ├── requirements.txt
  │   └── screen.png
  └── tools
  │   ├── __init__.py
  │   ├── config.py
  │   ├── sys_op.py
  │   ├── text_op.py
  │   ├── usr.py
  └── usr
      ├── .index
      └── cron
          ├── .index

(back to top)

Built With

(back to top)

Getting Started

Prerequisites

Nessun prerequisito per l'applicazione contenuta nel file .zip.

Python e pip sono necessari per costruire dalla fonte.

Easy installation (Pre-builded)

  1. Scarica il file NormaScraper-vX.zip
  2. Estrai il contenuto dall'archivio
  3. Esegui l'app pre-buildata

Build from source

!! Assicurati di avere python e pip installati !!

  1. Clona la repository

    git clone https://github.com/capazme/NormaScraperApp.git
  2. Installa le librerie pytho necessarie

     pip install -r resources/requirements.txt
  1. Avvia NormaScraper.py con python 3.12 o superiore
  python -m NormaScraper.py

3B. Oppure utilizza il file build.sh per ottenere un file eseguibile Questo script accetta vari flag che influenzano la versione e il comportamento della build:

--up: Aumenta la versione minore di 0.1. --upup: Aumenta la versione maggiore di 1. --noup: Non aumenta la versione durante questa compilazione. --clean: Pulisce i file generati dalle compilazioni precedenti, senza rimuovere le versioni precedenti dell'app. --cleanhard: Pulisce i file generati dalle compilazioni precedenti e rimuove le versioni precedenti dell'app. Per eseguire una compilazione standard che incrementa automaticamente la versione patch di 0.0.1, usa il seguente comando:

  ./build.sh

Se desideri mantenere la stessa versione e solo ricompilare l'app, puoi usare:

  ./build.sh --noup

Incremento della Versione

Per specificare manualmente il tipo di incremento della versione:

  ./build.sh --up    # Incrementa la versione minore
  ./build.sh --upup  # Incrementa la versione maggiore

Pulizia

Per pulire la directory di build senza rimuovere le versioni precedenti:

  ./build.sh --clean

Per una pulizia completa che include la rimozione delle versioni vecchie:

  ./build.sh --cleanhard

L'app compilata verrà spostata nella directory principale del progetto, e tutti i file temporanei saranno eliminati dopo la compilazione."

(back to top)

Usage

(back to top)

Spec

get_urn_and_extract_data()

La funzione get_urn_and_extract_data è progettata per interrogare il sito Normattiva, utilizzando l'URN (Uniform Resource Name) per identificare specifici atti legislativi. Una volta ottenuto l'accesso all'atto desiderato, la funzione estrae dati rilevanti che possono includere testo dell'atto, date di promulgazione, modifiche successive, e altro ancora. I parametri principali della funzione includono:

  • act_type (str): Il tipo di atto legislativo per cui si desidera generare l'URN.

    • atto generico (legge, decreto-legge, decreto legislativo, d.p.r. e possibili abbreviazioni)
    • atto specifico tra quelli elencati (o una abbraviazione elencata):
      • Costituzione (costituzione, cost, cost., c.)
      • Codice Civile (cc, c.c., codice civile, cod. civ., disp. att. c.c.)
      • TUE
      • TFUE
      • CDFUE
      • Preleggi (disp. prel., preleggi, prel.)
      • Codice Penale (cp, c.p., cod. pen.)
      • Codice di Procedura Civile (cpc, c.p.c., cod. proc. civ., disp. att. c.p.c.)
      • Codice di Procedura Penale (cpp, c.p.p., cod. proc. pen.)
      • Codice della Navigazione (cn, cod. nav.)
      • Codice Postale e delle Telecomunicazioni (cpet, cod. post. telecom.)
      • Codice della Strada (cds, cod. strada)
      • Codice del Processo Tributario (cpt, cod. proc. trib.)
      • Codice in Materia di Protezione dei Dati Personali (cpd, cod. prot. dati)
      • Codice delle Comunicazioni Elettroniche (cce, cod. com. elet.)
      • Codice dei Beni Culturali e del Paesaggio (cbc, cod. beni cult.)
      • Codice della Proprietà Industriale (cpi, cod. prop. ind.)
      • Codice dell'Amministrazione Digitale (cad, cod. amm. dig.)
      • Codice della Nautica da Diporto (cnd, cod. naut. diport.)
      • Codice del Consumo (cdc, cod. consumo)
      • Codice delle Assicurazioni Private (cap, cod. ass. priv.)
      • Norme in Materia Ambientale (camb, norme amb.)
      • Codice dei Contratti Pubblici (ccp, cod. contr. pubb.)
      • Codice delle Pari Opportunità (cpo, cod. pari opp.)
      • Codice dell'Ordinamento Militare (com, cod. ord. mil.)
      • Codice del Processo Amministrativo (cpa, cod. proc. amm.)
      • Codice del Turismo (ctu, cod. turismo)
      • Codice Antimafia (cam, cod. antimafia)
      • Codice di Giustizia Contabile (cgco, cod. giust. cont.)
      • Codice del Terzo Settore (cts, cod. ter. sett.)
      • Codice della Protezione Civile (cdpc, cod. prot. civ.)
      • Codice della Crisi d'Impresa e dell'Insolvenza (cci, cod. crisi imp.)"
  • act_number (str, optional): Il numero dell'atto legislativo e la sua espansione (come "-bis" o "-ter")

  • date (str, optional): La data di pubblicazione dell'atto in formato YYYY-MM-DD.

  • version (str, optional): Indica se l'atto è nella versione "originale" o "vigente".

  • version_date (str, optional): La data della versione dell'atto in formato YYYY-MM-DD.


Roadmap

  • Brocardi implementation
    • Aggiunta link articoli rilevanti
    • Aggiunta tasto spiegazione e massime (per i codici supportati da brocardi)
  • Altalex implementation
    • Altalexpedia
  • EURLEX implementation
    • Trattati principali
    • Regolamenti e direttive

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

KNOWN ISSUES

  • La ricerca con data incompleta è più lenta di quella con la data completa (ma solo al primo caricamento, in cronologia è salvata sempre la data completa)
  • Lo scorrimmento degli articoli non supporta le estensioni (-bis, ter etc...)
  • Alcuni codici di brocardi sono incompleti (es. titolo I codice della strada)
  • Commi non supportati per i codici (e occasionalmente alcuni decreti formattati male)

(back to top)

License

Distributed under the CC0-1.0 License. See LICENSE.txt for more information.

(back to top)

Contact

Guglielmo Puzio - - guglielmo.puzio00@gmail.com - guglielmo.puzio@studenti.luiss.it (ancora per un po')

Project Link: https://github.com/capazme/NormaScraperApp

(back to top)

Acknowledgments

(back to top)