Початок створення пакета

Розроблення пакетів Python

James Fulton

Climate informatics researcher

Навіщо взагалі створювати пакет?

  • Щоб код було легше перевикористовувати
  • Щоб не копіювати й не вставляти багато разів
  • Щоб ваші функції були актуальними
  • Щоб ділитися кодом з іншими
Розроблення пакетів Python

Зміст курсу

Ви створите повноцінний пакет і розглянете:

  • Структуру файлів
  • Структуру імпорту
  • Як зробити пакет інстальованим
  • Додавання ліцензій і README
  • Стиль і модульні тести для якісного пакета
  • Реєстрацію та публікацію пакета на PyPI
  • Використання шаблонів пакетів
Розроблення пакетів Python

Скрипти, модулі та пакети

  • Скрипт — файл Python, який запускають як python myscript.py

  • Пакет — каталог із кодом Python для імпорту

    • напр., numpy
  • Підпакет — менший пакет усередині пакета

    • напр., numpy.random і numpy.linalg
  • Модуль — файл Python у пакеті, де зберігається код пакета.

    • напр., приклад на наступних 2 слайдах
  • Бібліотека — пакет або збірка пакетів

    • напр., стандартна бібліотека Python (math, os, datetime, ...)
Розроблення пакетів Python

Дерево каталогів пакета

Дерево каталогів для простого пакета

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Цей каталог mysimplepackage — пакет Python
  • simplemodule.py містить увесь код пакета
  • __init__.py позначає каталог як пакет Python
Розроблення пакетів Python

Вміст простого пакета

__init__.py

Порожній файл

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

...

def another_cool_function():
    ...
    return another_cool_result

Файл із узагальненими функціями та кодом.

Розроблення пакетів Python

Підпакети

Дерево каталогів для пакета з підпакетами

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Розроблення пакетів Python

Давайте потренуємось!

Розроблення пакетів Python

Preparing Video For Download...