Проект шаблона пакета PYPI Micropython с автоматическим развертыванием
Шаблон пакета PYPI MicropyThon с тестированием и развертыванием на основе действий GitHub
Последняя документация доступна на шаблоне пакета Micropython Readthedocs
Python3 должен быть установлен в вашей системе. Проверьте текущую версию Python со следующей командой
python --version
python3 --version В зависимости от того, какая команда Python 3.xy (с xy в качестве некоторых чисел) возвращается, используйте эту команду для продолжения.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtПодключите устройство MicropyThon к сети (если возможно)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Установите последнюю версию Package This LIB на устройстве MicropyThon
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Для версий микропитона ниже 1.19.1 Используйте пакет upip вместо mip
import upip
upip . install ( 'micropython-package-template' )Установите конкретную, фиксированную версию этой LIB на устройстве MicropyThon
import mip
# install a verions of a specific branch
mip . install ( "github:brainelectronics/micropython-package-template" , version = "feature/initial-implementation" )
# install a tag version
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0" ) Для версий микропитона ниже 1.19.1 используйте пакет upip вместо mip . С upip всегда будет установлена последняя доступная версия.
import upip
upip . install ( 'micropython-package-template' )Установите конкретную версию кандидата в релиз, загруженную для тестирования индекса пакета Python на каждом PR на устройстве MicropyThon. Если определенная версия не установлена, будет использоваться последняя стабильная версия.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Для версий микропитона ниже 1.19.1 используйте пакет upip вместо mip . С upip всегда будет установлена последняя доступная версия.
import upip
# overwrite index_urls to only take artifacts from test.pypi.org
upip . index_urls = [ 'https://test.pypi.org/pypi' ]
upip . install ( 'micropython-package-template' )См. Также Brainelectronics Test Pypi Server в Docker для тестового сервера PYPI, работающего на Docker.
Скопируйте модуль на плату MicropyThon и импортируйте их, как показано ниже, используя удаленную микропитону.
Откройте удаленную оболочку со следующей командой. Дополнительно используйте -b 115200 в случае, если CP210x используется, а CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Выполните следующую команду внутри rshell , чтобы скопировать все файлы и папки на устройство
mkdir /pyboard/lib
mkdir /pyboard/lib/be_upy_blink
cp be_upy_blink/ * /pyboard/lib/be_upy_blink
cp examples/main.py /pyboard
cp examples/boot.py /pyboard from be_upy_blink import flash_led
from machine import Pin
led_pin = Pin ( 4 , Pin . OUT )
flash_led ( pin = led_pin , amount = 3 )
# flash_led(pin=led_pin, amount=3, on_time=1, off_time=3) Установите необходимый пакет Python со следующей командой в виртуальной среде, чтобы избежать любых конфликтов с другими пакетами, установленными в вашей локальной системе.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Этот модуль переопределяет Distutils (также совместимую с SDuptools) команды sdist для выполнения до и после обработки, как это требуется для менеджера пакетов UPIP Micropython. Этот сценарий взят из Pfalcon's Picoweb и обновлен как PEP8.
python setup.py sdist Будет создана новая папка dist . sdist_upip будет использоваться для создания всего необходимого.
Имейте в виду: pypi.org и test.pypi.org разные
Вы не можете войти в систему для тестирования.pypi.org с учетной записью pypi.org, если вы не создали то же самое с другой. См. Страница помощи в неверной авторизации Test PYPI
Для целей тестирования добавить --repository testpypi , чтобы загрузить его в test.pypi.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDЗапустите Unittests локально со следующей командой после установки этого пакета в виртуальной среде
# create a report directory where all generated report files are placed
python create_report_dirs.py # run all tests
nose2 --config tests/unittest.cfg
# run only one specific tests
nose2 tests.test_blink.TestBlink.test_flash_ledГенерировать файлы покрытия с помощью
coverage html Отчет о покрытии размещен в reports/coverage/html/index.html
Чтобы использовать этот шаблон для нового пакета Micropython для следующих шагов, и изменение в этом файле выполняется
| Файл | Изменения | Более подробная информация |
|---|---|---|
.coveragerc | Path to version.py file | Опустить файл версии из покрытия |
.coveragerc | Путь для include папки | Включите папку для покрытия для покрытия |
.github/workflows/release.yml | Path to version.py file | Используйте файл версии пакета, чтобы установить версию на основе ChangeLog |
.github/workflows/test-release.yml | Path to version.py file | Используйте файл версии пакета, чтобы установить версию на основе ChangeLog |
.github/workflows/test.yml | Path to version.py file | Используйте файл версии пакета, чтобы установить версию на основе ChangeLog |
.pre-commit-config.yaml | Path to version.py file | Используйте файл версии пакета для проверки по последней версии на основе Changelog |
README.md | Ссылки в разделе заголовка и инструкции по установке | |
changelog.md | Уборка изменяемости от информации о шаблоне | Сохраняйте использование SEMVER |
docs/DOCUMENTATION.md | Кинк для чтения | |
docs/conf.py | Список модулей, которые должны быть высмеивают, импорт пакета, файл Path to version.py , обновление author , project и linkcheck_ignore | |
docs/index.rst | Название заголовка и включенные модули | Замените be_upy_blink на новый .rst File of New Package |
docs/NEW_MODULE_NAME.rst | Создайте новый файл .rst с именем в пакете | Использовать docs/be_upy_blink.rst как шаблон |
package.json | Файлы и пути в новый пакет и репо | Используется mip |
setup.py | Path to version.py File, name , description , url , author , author_email , keywords , project_urls , packages , install_requires | Используется для создания пакета и его информации, опубликованной на EG PYPI |
На основе проекта PYPA Sample.