SZCZEGÓŁOWY SPIS TREŚCI
PODZIĘKOWANIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xv
WPROWADZENIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Kto i dlaczego powinien przeczytać tę książkę . . . . . . . . . . . . . . . . . . . . . . . . . xviii O tej książce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
1 ROZPOCZYNANIE PROJEKTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Wersje Pythona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Układ projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Co robić . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Czego nie robić . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Numerowanie wersji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Style programowania i automatyczne sprawdzanie . . . . . . . . . . . . . . . . . . . . . 6 Narzędzia do wykrywania błędów stylu . . . . . . . . . . . . . . . . . . . . . . 8 Narzędzia do wykrywania błędów programistycznych . . . . . . . . . . . 8 Joshua Harlow o Pythonie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 MODUŁY, BIBLIOTEKI I PLATFORMY . . . . . . . . . . . . . . . . . . . . . . . . . 13 System importowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Moduł sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ścieżki importowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Niestandardowe importery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obiekty wyszukujące z listy sys.meta_path . . . . . . . . . . . . . . . . . . . . Przydatne standardowe biblioteki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zewnętrzne biblioteki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista wymagań, jakie powinna spełniać bezpieczna biblioteka zewnętrzna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chronienie kodu przy użyciu opakowania API . . . . . . . . . . . . . . . . . Instalacja pakietu: dodatkowe możliwości narzędzia pip . . . . . . . . . . . . . . . . . Stosowanie i wybieranie platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doug Hellmann, Python Core Developer, o bibliotekach Pythona . . . . . . . . . . .
14 16 16 17 17 19 21 22 23 23 26 27
3 DOKUMENTACJA I NAJLEPSZE PRAKTYKI . . . . . . . . . . . . . . . . . . . . 33 Dokumentowanie przy użyciu Sphinksa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34