Avviare un pacchetto

Sviluppare pacchetti Python

James Fulton

Climate informatics researcher

Perché creare un pacchetto?

  • Per riutilizzare il tuo codice più facilmente
  • Per evitare copia e incolla continui
  • Per mantenere aggiornate le tue funzioni
  • Per condividere il tuo code con altri
Sviluppare pacchetti Python

Contenuti del corso

Creerai un pacchetto completo e vedrai:

  • Struttura dei file
  • Struttura degli import
  • Rendere il pacchetto installabile
  • Aggiungere licenze e README
  • Stile e unit test per alta qualità
  • Registrare e pubblicare su PyPI
  • Usare template di pacchetto
Sviluppare pacchetti Python

Script, moduli e pacchetti

  • Script - Un file Python eseguito con python myscript.py

  • Pacchetto - Una directory di codice Python da importare

    • es. numpy
  • Sottopacchetto - Un pacchetto più piccolo dentro un pacchetto

    • es. numpy.random e numpy.linalg
  • Modulo - Un file Python in un pacchetto che contiene il codice del pacchetto.

    • es. esempio nelle prossime 2 diapositive
  • Libreria - Un pacchetto o una raccolta di pacchetti

    • es. la libreria standard di Python (math, os, datetime, ...)
Sviluppare pacchetti Python

Albero directory di un pacchetto

Albero directory per un pacchetto semplice

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Questa directory, chiamata mysimplepackage, è un pacchetto Python
  • simplemodule.py contiene tutto il codice del pacchetto
  • __init__.py indica che questa directory è un pacchetto Python
Sviluppare pacchetti Python

Contenuti di un pacchetto semplice

__init__.py

File vuoto

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

File con funzioni e codice generali.

Sviluppare pacchetti Python

Sottopacchetti

Albero directory per un pacchetto con sottopacchetti

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Sviluppare pacchetti Python

Esercitiamoci!

Sviluppare pacchetti Python

Preparing Video For Download...