Proyecto de plantilla de paquete Pypi de Micripthon con implementación automática
Plantilla de paquete Pypi de Micrypthon con pruebas e implementación basadas en la acción de Github
La última documentación está disponible en la plantilla de paquetes de Micropython Readthedocs
Python3 debe instalarse en su sistema. Verifique la versión actual de Python con el siguiente comando
python --version
python3 --version Dependiendo del comando Python 3.xy (con XY como algunos números) se devuelve, use ese comando para proceder.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtConecte el dispositivo Micrypthon a una red (si es posible)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Instale la última versión de paquete de esta lib en el dispositivo Micrypthon
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Para versiones de Micripthon por debajo de 1.19.1, use el paquete upip en lugar de mip
import upip
upip . install ( 'micropython-package-template' )Instale una versión de paquete específica y fija de esta lib en el dispositivo Micopython
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" ) Para versiones de Micrypthon por debajo de 1.19.1, use el paquete upip en lugar de mip . Con upip siempre se instalará la última versión disponible.
import upip
upip . install ( 'micropython-package-template' )Instale una versión candidata de lanzamiento específica cargada para probar el índice de paquetes de Python en cada PR en el dispositivo Micopython. Si no se establece una versión específica, se utilizará la última versión estable.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Para versiones de Micrypthon por debajo de 1.19.1, use el paquete upip en lugar de mip . Con upip siempre se instalará la última versión disponible.
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' )Consulte también BrainElectronics Test Pypi Server en Docker para un servidor PYPI de prueba que se ejecuta en Docker.
Copie el módulo a la placa de Micrypthon e importe como se muestra a continuación utilizando la carcasa remota de Micopython
Abra el shell remoto con el siguiente comando. Además, use -b 115200 en caso de que no se use CP210X sino un CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Realice el siguiente comando dentro del rshell para copiar todos los archivos y carpetas en el dispositivo
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) Instale el paquete Python requerido con el siguiente comando en un entorno virtual para evitar conflictos con otros paquetes instalados en su sistema local.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Este módulo anula el comando sdist de Distutils (también compatibles con SetupTools) para realizar el procesamiento previo y posterior a los que se requiere para el Administrador de paquetes UPIP de Micropython. Este script está tomado de Picoweb de Pfalcon y se actualiza para ser PEP8.
python setup.py sdist Se creará un nuevo dist carpeta. El sdist_upip se utilizará para crear todo lo necesario.
Sea consciente: pypi.org y test.pypi.org son diferentes
No puede iniciar sesión en test.pypi.org con la cuenta pypi.org a menos que cree lo mismo en el otro. Consulte la página de ayuda de autenticación no válida de Test Pypi
Para fines de prueba, agregue --repository testpypi para cargarlo para test.pypi.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDEjecute las UNITESTS localmente con el siguiente comando después de instalar este paquete en un entorno virtual
# 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_ledGenerar los archivos de cobertura con
coverage html El informe de cobertura se coloca en reports/coverage/html/index.html
Para usar esta plantilla para un nuevo paquete de Micopython para realizar los siguientes pasos y los cambios en estos archivos que se realizan
| Archivo | Cambios | Más detalles |
|---|---|---|
.coveragerc | Ruta a version.py archivo | Omitir el archivo de versión desde la cobertura |
.coveragerc | Camino para include la carpeta | Incluir la carpeta de paquete para la cobertura |
.github/workflows/release.yml | Ruta a version.py archivo | Use el archivo de versión de paquete para establecer la versión basada en ChangeLog |
.github/workflows/test-release.yml | Ruta a version.py archivo | Use el archivo de versión de paquete para establecer la versión basada en ChangeLog |
.github/workflows/test.yml | Ruta a version.py archivo | Use el archivo de versión de paquete para establecer la versión basada en ChangeLog |
.pre-commit-config.yaml | Ruta a version.py archivo | Use el archivo de versión de paquete para la validación en la última versión basada en ChangeLog |
README.md | Enlaces en la sección de encabezado e instrucciones de instalación | |
changelog.md | Limpieza ChangeLog de informaciones de plantilla | Mantenga el uso de Semver |
docs/DOCUMENTATION.md | Kink a Readthedocs | |
docs/conf.py | Lista a los módulos que se burlarán, la importación de paquetes, ruta al archivo version.py , actualización author , project y linkcheck_ignore | |
docs/index.rst | Nombre del encabezado y módulos incluidos | Reemplace be_upy_blink con un nuevo archivo .rst del nuevo paquete |
docs/NEW_MODULE_NAME.rst | Cree un nuevo archivo .rst llamado como paquete | Use docs/be_upy_blink.rst como plantilla |
package.json | Archivos y rutas al nuevo paquete y repositorio | Usado por mip |
setup.py | Ruta al archivo de version.py , name , description , url , author , author_email , keywords , project_urls , packages , install_requires | Se utiliza para crear el paquete y sus información publicada en EG Pypi |
Basado en el proyecto de muestra PYPA.