Crearea unui pachet

Dezvoltarea pachetelor Python

James Fulton

Climate informatics researcher

De ce să creați un pachet?

  • Pentru a reutiliza mai ușor codul
  • Pentru a evita copierea repetată
  • Pentru a menține funcțiile actualizate
  • Pentru a partaja codul cu alții
Dezvoltarea pachetelor Python

Conținutul cursului

Veți construi un pachet complet și veți parcurge:

  • Structura fișierelor
  • Structura importurilor
  • Instalarea pachetului
  • Adăugarea licențelor și a fișierelor README
  • Stil și teste unitare pentru un pachet de calitate
  • Înregistrarea și publicarea pachetului pe PyPI
  • Utilizarea șabloanelor de pachete
Dezvoltarea pachetelor Python

Scripturi, module și pachete

  • Script – Un fișier Python rulat cu python myscript.py

  • Pachet – Un director cu cod Python destinat importului

    • ex. numpy
  • Subpachet – Un pachet mai mic inclus într-un pachet

    • ex. numpy.random și numpy.linalg
  • Modul – Un fișier Python dintr-un pachet care stochează codul acestuia.

    • ex. exemplu în următoarele 2 diapozitive
  • Bibliotecă – Un pachet sau o colecție de pachete

    • ex. biblioteca standard Python (math, os, datetime,...)
Dezvoltarea pachetelor Python

Arborele de directoare al unui pachet

Arborele de directoare pentru un pachet simplu

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Acest director, numit mysimplepackage, este un pachet Python
  • simplemodule.py conține tot codul pachetului
  • __init__.py marchează directorul ca pachet Python
Dezvoltarea pachetelor Python

Conținutul unui pachet simplu

__init__.py

Fișier gol

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

...

def another_cool_function():
    ...
    return another_cool_result

Fișier cu funcții și cod generalizate.

Dezvoltarea pachetelor Python

Subpachete

Arborele de directoare pentru un pachet cu subpachete

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Dezvoltarea pachetelor Python

Să exersăm!

Dezvoltarea pachetelor Python

Preparing Video For Download...