Začínáme s balíčkem

Developing Python Packages

James Fulton

Climate informatics researcher

Proč vůbec vytvářet balíček?

  • Snadnější znovupoužití kódu
  • Méně kopírování a vkládání
  • Aktuální funkce na jednom místě
  • Sdílení kódu s ostatními
Developing Python Packages

Obsah kurzu

Vytvoříte kompletní balíček. Kurz zahrnuje:

  • Strukturu souborů
  • Strukturu importů
  • Instalovatelnost balíčku
  • Licence a soubory README
  • Styl kódu a jednotkové testy
  • Registraci a publikování na PyPI
  • Šablony balíčků
Developing Python Packages

Skripty, moduly a balíčky

  • Skript – soubor Pythonu spouštěný jako python myscript.py

  • Balíček – adresář s kódem Pythonu určeným k importu

    • např. numpy
  • Podbalíček – menší balíček uvnitř balíčku

    • např. numpy.random a numpy.linalg
  • Modul – soubor Pythonu uvnitř balíčku obsahující jeho kód

    • např. příklad v dalších 2 snímcích
  • Knihovna – balíček nebo kolekce balíčků

    • např. standardní knihovna Pythonu (math, os, datetime, ...)
Developing Python Packages

Adresářový strom balíčku

Adresářový strom jednoduchého balíčku

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Adresář mysimplepackage je balíček Pythonu
  • simplemodule.py obsahuje veškerý kód balíčku
  • __init__.py označuje adresář jako balíček Pythonu
Developing Python Packages

Obsah jednoduchého balíčku

__init__.py

Prázdný soubor

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

...

def another_cool_function():
    ...
    return another_cool_result

Soubor s obecnými funkcemi a kódem.

Developing Python Packages

Podbalíčky

Adresářový strom balíčku s podbalíčky

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Developing Python Packages

Pojďme procvičovat!

Developing Python Packages

Preparing Video For Download...