Distribuzione di Python usata nel corso: Anaconda
Per svolgere le esercitazioni, gli homework e gli esami usiamo la distribuzione di Python che potete scaricare da www.anaconda.com/download e che contiene:
- Python 3.6 (USATE la 3.6!!!)
- Per installare la versione 3.6 di python provate ad usare uno dei seguenti link alla versione precedente di Anaconda
-
Anaconda3-5.2.0-Linux-ppc64le.sh 288.3M 2018-05-30 13:05:40 cbd1d5435ead2b0b97dba5b3cf45d694 Anaconda3-5.2.0-Linux-x86.sh 507.3M 2018-05-30 13:05:46 81d5a1648e3aca4843f88ca3769c0830 Anaconda3-5.2.0-Linux-x86_64.sh 621.6M 2018-05-30 13:05:43 3e58f494ab9fbe12db4460dc152377b5 Anaconda3-5.2.0-MacOSX-x86_64.pkg 613.1M 2018-05-30 13:07:00 9c35bf27e9986701f7d80241616c665f Anaconda3-5.2.0-MacOSX-x86_64.sh 523.3M 2018-05-30 13:07:03 b5b789c01e1992de55ee911754c310d4 Anaconda3-5.2.0-Windows-x86.exe 506.3M 2018-05-30 13:04:19 285387e7b6ea81edba98c011922e235a Anaconda3-5.2.0-Windows-x86_64.exe 631.3M 2018-05-30 13:04:18 62244c0382b8142743622fdc3526eda7
-
- un sacco di librerie standard e/o utili
- l'ambiente di sviluppo Spyder
NOTA: nella installazione di Anaconda scegliete l'opzione "Only for me"
Librerie necessarie/utili per il corso
Una volta installato Anaconda potete/dovete installare queste librerie aggiuntive
Libreria | A che serve | Istallazione in Anaconda Prompt | Istallazione in Python3 | Come si usa |
---|---|---|---|---|
ddt | Eseguire test con dati presi da file | conda install -c conda-forge ddt | pip install ddt | Viene importata dai test |
pytest-timeout | Applicare un timeout a ciascun test | conda install pytest-timeout | pip install pytest-timeout | aggiunge il parametro --timeout=<secondi> al comando pytest |
spyder-unittest | Lanciare i test da dentro Spyder | conda install -c conda-forge spyder-unittest | pip install spyder-unittest | aggiunge un tab in Spyder per lanciare i test (scegliete pytest e la directory) |
radon | Calcolare l'intricatezza del codice | conda install -c conda-forge radon | pip install radon | radon cc -a -s --show-closures program0X.py |
Notepad | è da buttare, non lo usate | non mostra i '\n' | NON LO USATE | |
Spyder | OK | |||
Notepad++ | OK | |||
Wordpad | OK | |||
Beyond Compare | Utilissimo per confrontare file di testo ed immagini | https://www.scootersoftware.com/download.php |
Per aggiornare tutte le librerie installate in Anaconda usate il comando (da lanciare dentro la finestra che si apre con "Anaconda Prompt")
- conda update --all
Questo può essere necessario se Spyder smette di funzionare (dopo aver controllato in Gestione Programmi che il processo Spyder non si sia impallato)
Comandi vari
I test sono i metodi contenuti nel file test_0X.py che hanno il nome che inizia con 'test' e vengono automaticamente individuati ed eseguiti da pytest.
Per eseguire i test senza timeout usate uno dei comandi (il secondo elenca i tempi di esecuzione di ciascun test)
- pytest test_0X.py
- pytest test_0X.py -v --durations 0
Per eseguire uno specifico test invece che tutti
- pytest -v text_0X.py -k <parte del nome del test>
Esempio: pytest test_01.py -k 2_valori -v
Per eseguire i test in modo da applicare il timeout ed elencare gli N test più lenti (con x=1,2,3 e T=timeout in secondi)
- pytest -v test_0X.py --timeout T --durations N
Per calcolare l'intricatezza (complessità ciclomatica) del codice (quello che consideriemo nella classifica è l'intricatezza MASSIMA)
- radon cc -a -s --show-closures program0X.py
Per calcolare il tempo di esecuzione complessivo del programma facendo la media su 3 run da 5 test
-
python -u -m timeit -v -v -v -v -n 5 -r 3 -s 'from test_0X import Test' 'Test.main()'