Создание модуля в Python: шаг за шагом для REST API

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы приступить к разработке пакета на языке Python, вам необходимо создать директорию, в которой будет находиться специальный файл __init__.py. Этот файл позволит преобразовать созданную директорию в пакет Python, доступный для импорта. Всю свою программу на Python вы должны разместить в файлах с расширением .py внутри созданной директории:

mymodule/
├── __init__.py
└── core.py

В самом файле core.py можно размещать описанные вами функции или классы:

Python
Скопировать код
def high_five():
    return "Дай пять!"

Для того чтобы экспортировать данные функции или классы, их следует указать в файле __init__.py:

Python
Скопировать код
from .core import high_five

Теперь использование вашего пакета осуществляется следующим образом:

Python
Скопировать код
from mymodule import high_five

Для распространения своего пакета вам потребуется файл setup.py, содержащий всю метаинформацию о вашем проекте. Чтобы опубликовать свой модуль, можно воспользоваться инструментами setuptools и twine.

Кинга Идем в IT: пошаговый план для смены профессии

Правильная структура файлов

Постарайтесь давать файлам модулей краткие имена в нижнем регистре. Связанные функции стоит располагать в одном и том же месте для удобства доступа. При больших объёмах кода в пакете, лучше обращаться к пространствам имен, чтобы структурировать код.

Зависимости и виртуальные среды

Перед публикацией пакета обязательно протестируйте его в изолированной виртуальной среде. Таким образом, вы сможете обнаружить скрытые зависимости, которые в последствии следует указать в файле setup.py.

Лучшие практики сообщества

Поддерживайте свой репозиторий на GitHub в актуальном состоянии, используйте .gitignore для исключения ненужных файлов, добавьте LICENSE.txt для ясности условий использования, и не забывайте про README, чтобы упростить пользователям работу с вашим модулем.

Контроль за кодом (модульное тестирование)

Необходимо проводить тестирование пакета в локальной среде и на тестовом репозитории PyPI перед его релизом. Используйте модульное тестирование, например, с помощью инструмента pytest для проверки корректности функций.

Визуализация

Представьте себе пакет на Python в виде сборки 🚗 автомобиля.

Markdown
Скопировать код
shell = __init__.py             # 🐚 Кузов, образующий внешний вид авто.

Модули – это детали, из которых состоит автомобиль:

Markdown
Скопировать код
engine.py = Двигатель           # 🚗💨
wheels.py = Колёса              # 🚗🔄
seats.py = Сиденья              # 🚗💺

Файл setup.py – это важнейшая деталь сборки:

Markdown
Скопировать код
setup.py = Процедура сборки авто # 🚗🔧

Они все размещаются в рамках одной директории:

Markdown
Скопировать код
my_module/                      # Ваш личный гараж
├── __init__.py                 # Основание авто
├── engine.py                   # Модуль двигателя
├── wheels.py                   # Модуль колёс
└── seats.py                    # Модуль сидений
setup.py                        # Конвейер сборки

Модуль – это часть авто, а вместе они образуют полный пакет.

Для пользователя

Стремитесь к тому, чтобы ваш пакет можно было установить с использованием команды pip install. Корректное управление зависимостями и настройка исправного файла setup.py облегчит процесс установки.

Лучшие практики

Следование конвенциям именования по стандарту PEP 8 позволит повысить читаемость кода, делая его понятным и доступным как для новичков, так и для опытных разработчиков.

Непрерывная интеграция и развертывание (CI/CD)

Рекомендуется настроить CI/CD, например, с использованием GitHub Actions, чтобы автоматизировать процесс кодирования и поддержки кода.

Полезные материалы

  1. Упаковка проектов Python – Руководство пользователя Python Packaging — Подробное руководство по упаковке и распространению Python-кода.
  2. Модули и пакеты Python – Введение – Real Python — Глубокое вникновение в работу модулей и пакетов на Python.
  3. GitHub – pypa/sampleproject — Пример проекта с учётом лучших практик Авторитета по упаковке Python.
  4. Добро пожаловать в Hitchhiker’s Guide to Packaging — Детальное руководство по упаковке проектов на Python.
  5. PEP 8 – Руководство по стилю кода Python — Советы, помогающие сделать ваш Python-код красивее.
  6. pytest: помогает писать лучшие программы — документация pytest — Рекомендации по тестированию вашего Python-кода с помощью pytest.
  7. Упаковка проектов Python – Публикация вашего проекта в PyPI — Инструкция по загрузке вашего пакета на PyPI.