Рубрики
Без рубрики

Создайте пакет Pypi (PIP), проверьте его и опубликуйте его, используя действия GitHub (часть 1)

Создание пакета PYPI проще, чем вы думаете, потому что все, что вам нужно сделать, это создать Python Packa … Помечено Python, DevOps, Github, Pip.

Создание Pypi Пакет проще, чем вы думаете, потому что все, что вам нужно сделать, это создать пакет Python, A setup.py Файл, который определяет ваш пакет и загрузите его на Pypi (индекс пакета Python) для миллионов пользователей для установки через Пип Отказ

Написание нашего кода

Во-первых, нам нужно создать пакет Python. У меня есть в виду очень простой пакет, тот, который позволяет взаимодействовать и манипулировать строками, Как Лоташ Отказ

Я собираюсь использовать Pycharm в качестве моей IDE выбора, но не стесняйтесь использовать все, что вы хотите (VSCode, Spyder, Idle, Vim и т. Д.).

Моя папка будет названа Пидаш Как это название моего пакета PIP. Внутри Пидаш Папка, давайте создадим другую папку под названием Пидаш Отказ Это новое Пидаш Папка будет домировать весь наш код. Создать __init__.py Файл в этой папке. Мы будем редактировать этот файл.

class PyDash:
    def __init__(self):
        pass

    @staticmethod
    def lower(string: str):
        """
        Converts a string to lowercase
        """
        return string.lower()

    @staticmethod
    def upper(string: str):
        """
        Converts a string to uppercase
        """
        return string.upper()

    @staticmethod
    def title(string: str):
        """
        Converts a string to titlecase
        """
        return string.title()

    @staticmethod
    def kebab(string: str):
        """
        Converts a string to kebabcase
        """
        return string.replace(" ", "-").lower()

Тестирование нашей пакеты

Создать файл Python с именем test.py , index.py или все, что вы хотите Снаружи Пидаш папка (один, содержащий __init__.py . Мы можем импортировать и тестировать наш пакет, как так:

from pydash import PyDash

print(pydash.lower("TEST"))
print(pydash.upper("test"))
print(pydash.title("there WAS a MAN!"))
print(pydash.kebab("Generate a Slug for my Post"))
OUTPUT:
test
TEST
There Was A Man!
generate-a-slug-for-my-post

Добавление setup.py.

Наш пакет отлично работает! Теперь вы можете удалить свой тест Python File. Мы почти готовы получить этот пакет и бегать на Pypi. Есть только одна проблема. Pypi ничего не знает о нашем проекте, поэтому давайте скажем что-то. Создать файл с именем setup.py В вашем каталоге проекта. Этот список каталогов должен помочь:

- pydash
| - pydash
  | - __init__.py
| - setup.py

Во-первых, мы должны решить имя, что не принимается на пипи. К сожалению для меня, пидаш уже существует, поэтому я пойду с именем Pydash-Arnu515 Отказ

Как только вы получили настройку с вашим именем, давайте добавим некоторые вещи в Setup.py.

Создать еще несколько файлов

Давайте теперь добавим Readme.md файл, чтобы setup.py может ссылаться на него.

Давайте добавим .gitignore. , Так что мы не совершаем никаких файлов, которые мы не должны.

__pycache__/
build/
dist/
*.egg-info/
*.egg
venv

Я рекомендую маркировать эти каталоги как Исключен В Pycharm, чтобы не получить ошибки, такие как «Дублированный кодовый фрагмент».

Теперь один последний файл, Лицензия Отказ В setup.py Я установил свою лицензию на Мит Так вот что я собираюсь.

И это это для нашего пакета Python!

Тестирование нашей посылки с неисполнительно.

Unittest – это встроенный модуль Python, который позволяет нам проверить наш пакет. Этот блог не представляет Неизвестный тебе. Для этого есть еще много учебных пособий в Интернете. Здесь я просто покажу вам, как вы можете проверить свой пакет Python.

Создание наших тестов.

Создать папку с именем Тесты В папке проекта и создайте файл с именем __init__.py в этом. Это должно быть, как выглядит ваша папка:

- pydash
| - pydash
  | - __init__.py
| - tests
  | - __init__.py
| - setup.py

С Тесты это пакет, он будет включен в нашу пакет PIP, потому что seturgools.findpackage добавит его в наш пакет PIP. Это не то, что мы хотим, так что давайте сделаем быстрое изменение в Setup.py.

packages=find_packages(exclude="tests")

Добавление нашего первого теста

Создать файл с именем test_string.py Отказ

Pycharm позволяет мне автоматически запускать ненужденные, но я не собираюсь этого делать, так как не каждый использует пичарм. Вместо этого мы будем использовать командную строку для проверки нашего приложения.

cd tests
python3 -m unittest discover

Откройте для себя Ключевое слово рассказывает Неизвестный Чтобы найти какие-либо файлы с именем Тест _ *. py и запускайте мерцание внутри них.

Возможно, вы получили ошибку, указав:

No module named pydash

Мы можем исправить это, установив Pydash, используя Setup.py.

python3 setup.py install
cd tests
python3 -m unittest discover

Ваши тесты должны были успешно работать.

Загрузка в TestPypi

Теперь, для веселья, подожди, что такое TestPypi ? TESTPYPI – это отдельный экземпляр PYPI, предназначенный для того, чтобы сначала проверить ваши пакеты, поэтому давайте загружем наш пакет там сначала.

Нам нужно сначала установить несколько пакетов.

pip install twine wheel

Нам нужно сначала создать учетную запись на TestPypi. Перейти к TestPypi и создать учетную запись (или войти, если у вас уже есть). Вам нужно будет проверить свой адрес электронной почты, чтобы загрузить пакет.

Создать токен доступа

Давайте создадим токен доступа, который позволит нам загрузить в TESTPIPI, не набрав на нашу электронную почту и пароль все время. Перейти к себе API токены в настройках аккаунта и создать Полный доступ API токен. Дайте ему имя и установите свой объем на всю учетную запись.

Скопируйте свой токен API и храните его в безопасном месте, когда он отображается вам, как он будет Никогда быть отображенным вам снова

Это Очень Важно, чтобы вы не разделяете свой токен API и не совершаете его git, потому что любой с доступом к этому токену может загружать пакеты на свою учетную запись.

Строительство и загрузка вашего пакета в TestPy

Теперь приходит веселье! Давайте построим свой пакет, используя эту команду:

python3 setup.py sdist bdist_wheel

Это должно создать новую папку, называемую Dist В вашем текущем каталоге.

Давайте загрузим эту папку, используя шпагат :

python3 -m twine upload -r testpypi dist/*

Для имени пользователя введите __Token__ И для пароля вставьте свой токен API.

Вуаля! Ваша пакет успешно загружена в TestPipi!

Посмотреть это на https://test.pypi.org/project/your_project_name.

Например, моя была бы https://test.pypi.org/project/pydash-arnu515.

Загрузка в Pypi

Теперь, когда мы загрузили наш пакет в TestPy, мы можем сделать то же самое для регулярных PYPI. Создайте учетную запись на Pypi.org а затем создать API токен Отказ

Создайте свой пакет еще раз:

python3 setup.py sdist bdist_wheel

И загрузить на Pypi:

python3 -m twine upload dist/*

Для имени пользователя введите __Token__ И для пароля вставьте токен API из Pypi.

И были сделаны

Поздравляю! У вас есть новый пакет вверх и работает на Pypi. Для автоматизации с действиями GitHub просматривать часть 2

Оригинал: “https://dev.to/arnu515/create-a-pypi-pip-package-test-it-and-publish-it-using-github-actions-part-1-3cp8”