Projet de modèle de package MicropyThon PYPI avec déploiement automatique
Modèle de package MicropyThon PYPI avec test et déploiement basés sur l'action GitHub
La dernière documentation est disponible sur le modèle de package Micropython ReadTheDocs
Python3 doit être installé sur votre système. Vérifiez la version Python actuelle avec la commande suivante
python --version
python3 --version Selon la commande Python 3.xy (avec xy comme certains nombres) est renvoyé, utilisez cette commande pour continuer.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtConnectez le périphérique Micropython à un réseau (si possible)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Installez la dernière version du package de cette lib sur le dispositif Micropython
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Pour les versions Micropython en dessous du 1.19.1, utilisez le package upip au lieu de mip
import upip
upip . install ( 'micropython-package-template' )Installez une version spécifique et fixe de cette lib sur le dispositif 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" ) Pour les versions MicropyThon en dessous du 1.19.1, utilisez le package upip au lieu de mip . Avec upip , la dernière version disponible sera installée.
import upip
upip . install ( 'micropython-package-template' )Installez une version de candidat de version spécifique téléchargée pour tester l'index de package Python sur chaque PR sur le périphérique Micropython. Si aucune version spécifique n'est définie, la dernière version stable sera utilisée.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Pour les versions MicropyThon en dessous du 1.19.1, utilisez le package upip au lieu de mip . Avec upip , la dernière version disponible sera installée.
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' )Voir également Braintelectronics Test PYPI Server dans Docker pour un serveur PYPI de test fonctionnant sur Docker.
Copiez le module sur la carte Micropython et importez-les comme indiqué ci-dessous à l'aide du shell Micropython à distance
Ouvrez le shell distant avec la commande suivante. Utilisez en outre -b 115200 au cas où aucun CP210X n'est utilisé mais un CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Effectuez la commande suivante à l'intérieur du rshell pour copier tous les fichiers et dossiers sur l'appareil
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) Installez le package Python requis avec la commande suivante dans un environnement virtuel pour éviter tout conflit avec d'autres packages installés sur votre système local.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Ce module remplace les distutiles (également compatibles avec SEtuptools) sdist Commande pour effectuer le pré-traitement et le post-traitement selon les besoins pour le gestionnaire de package UPIP de MicropyThon. Ce script est tiré de PFALCON de PICOWEB et mis à jour pour être PEP8 Conforme.
python setup.py sdist Un nouveau dist dossier sera créé. Le sdist_upip sera utilisé pour créer tout ce qui est nécessaire.
Soyez conscient: pypi.org et test.pypi.org sont différents
Vous ne pouvez pas vous connecter pour tester.pypi.org avec le compte PYPI.org à moins que vous n'ayez créé la même chose sur l'autre. Voir la page d'aide de l'authentique non valide du test PYPI
À des fins de test, Ajouter --repository testpypi pour le télécharger dans TEST.PYPI.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDExécutez les unités d'unité localement avec la commande suivante après avoir installé ce package dans un environnement virtuel
# 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_ledGénérer les fichiers de couverture avec
coverage html Le rapport de couverture est placé aux reports/coverage/html/index.html
Afin d'utiliser ce modèle pour un nouveau package micropython aux étapes suivantes doit être effectuée et les modifications de ces fichiers sont effectués
| Déposer | Changements | Plus de détails |
|---|---|---|
.coveragerc | Path vers version.py Fichier | Omettre le fichier de version de la couverture |
.coveragerc | Chemin pour include le dossier | Incluez le dossier de package pour la couverture |
.github/workflows/release.yml | Path vers version.py Fichier | Utilisez le fichier de version du package pour définir la version basée sur Changelog |
.github/workflows/test-release.yml | Path vers version.py Fichier | Utilisez le fichier de version du package pour définir la version basée sur Changelog |
.github/workflows/test.yml | Path vers version.py Fichier | Utilisez le fichier de version du package pour définir la version basée sur Changelog |
.pre-commit-config.yaml | Path vers version.py Fichier | Utilisez le fichier de version du package pour la validation par rapport à la dernière version basée sur Changelog |
README.md | Liens dans la section d'en-tête et les instructions d'installation | |
changelog.md | Nettoyer Changelog à partir des informations du modèle | Gardez l'utilisation de Semver |
docs/DOCUMENTATION.md | Plie à lirethedocs | |
docs/conf.py | Liste des modules à moquer, l'importation de package, le chemin vers la version.py , le fichier de mise à jour, author , project et linkcheck_ignore | |
docs/index.rst | Nom de tête et modules inclus | Remplacez be_upy_blink par un nouveau fichier .rst du nouveau package |
docs/NEW_MODULE_NAME.rst | Créer un nouveau fichier .rst nommé comme le package | Utilisez docs/be_upy_blink.rst comme modèle |
package.json | Fichiers et chemins vers un nouveau package et repo | Utilisé par mip |
setup.py | Chemin vers la version version.py , name , description , url , author , author_email , keywords , project_urls , packages , install_requires | Utilisé pour créer le package et ses informations publiées sur EG PYPI |
Basé sur le projet d'échantillon PYPA.