Proyek Template Paket Pypi Micropython dengan Deploy Otomatis
Micropython PYPI Template dengan pengujian dan penyebaran berbasis aksi GitHub
Dokumentasi terbaru tersedia di Micropython Package Template ReadThedocs
Python3 harus diinstal pada sistem Anda. Periksa versi python saat ini dengan perintah berikut
python --version
python3 --version Bergantung pada perintah mana Python 3.xy (dengan xy sebagai beberapa nomor) dikembalikan, gunakan perintah itu untuk melanjutkan.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtHubungkan perangkat Micropython ke jaringan (jika memungkinkan)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Instal versi paket terbaru dari LIB ini pada perangkat Micropython
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Untuk versi Micropython di bawah 1.19.1 Gunakan paket upip sebagai ganti mip
import upip
upip . install ( 'micropython-package-template' )Instal versi paket spesifik dan tetap ini pada perangkat 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" ) Untuk versi Micropython di bawah 1.19.1 Gunakan paket upip sebagai ganti mip . Dengan upip selalu versi terbaru yang tersedia akan diinstal.
import upip
upip . install ( 'micropython-package-template' )Instal versi kandidat rilis spesifik yang diunggah untuk menguji indeks paket python pada setiap PR pada perangkat micropython. Jika tidak ada versi spesifik yang ditetapkan, versi stabil terbaru akan digunakan.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Untuk versi Micropython di bawah 1.19.1 Gunakan paket upip sebagai ganti mip . Dengan upip selalu versi terbaru yang tersedia akan diinstal.
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' )Lihat juga Brainelectronics Test PYPI Server di Docker untuk server PYPI uji yang berjalan di Docker.
Salin modul ke papan micropython dan impornya seperti yang ditunjukkan di bawah ini menggunakan micropython shell jarak jauh
Buka shell jarak jauh dengan perintah berikut. Selain itu gunakan -b 115200 jika tidak ada CP210X yang digunakan tetapi CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Lakukan perintah berikut di dalam rshell untuk menyalin semua file dan folder ke perangkat
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) Instal paket Python yang diperlukan dengan perintah berikut di lingkungan virtual untuk menghindari konflik dengan paket lain yang diinstal pada sistem lokal Anda.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Modul ini mengesampingkan perintah sdist disista (juga kompatibel dengan setuptools) untuk melakukan pra dan pasca pemrosesan seperti yang diperlukan untuk manajer paket UPIP Micropython. Script ini diambil dari picoweb Pfalcon dan diperbarui menjadi PEP8 Conform.
python setup.py sdist dist folder baru akan dibuat. sdist_upip akan digunakan untuk membuat segala yang diperlukan.
Waspadai: pypi.org dan test.pypi.org berbeda
Anda tidak dapat masuk ke test.pypi.org dengan akun pypi.org kecuali Anda membuat hal yang sama di sisi lain. Lihat Halaman Bantuan Auth yang Tidak Valid PYPI Tes
Untuk tujuan pengujian tambahkan --repository testpypi untuk mengunggahnya ke test.pypi.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDJalankan Unittests secara lokal dengan perintah berikut setelah menginstal paket ini di lingkungan 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_ledMenghasilkan file cakupan dengan
coverage html Laporan cakupan ditempatkan di reports/coverage/html/index.html
Untuk menggunakan templat ini untuk paket micropython baru untuk langkah -langkah berikut harus dilakukan dan perubahan pada file ini sedang dibuat
| Mengajukan | Perubahan | Lebih detail |
|---|---|---|
.coveragerc | Path to version.py file | Menghilangkan file versi dari cakupan |
.coveragerc | Jalur untuk include folder | Sertakan folder paket untuk cakupan |
.github/workflows/release.yml | Path to version.py file | Gunakan file versi paket untuk mengatur versi berbasis changelog |
.github/workflows/test-release.yml | Path to version.py file | Gunakan file versi paket untuk mengatur versi berbasis changelog |
.github/workflows/test.yml | Path to version.py file | Gunakan file versi paket untuk mengatur versi berbasis changelog |
.pre-commit-config.yaml | Path to version.py file | Gunakan file versi paket untuk validasi terhadap versi berbasis changelog terbaru |
README.md | Tautan di bagian header dan instruksi instalasi | |
changelog.md | Changelog Pembersihan dari Informasi Template | Terus Penggunaan SEMVER |
docs/DOCUMENTATION.md | Kink to readthedocs | |
docs/conf.py | Daftar ke modul yang akan diejek, impor paket, jalur ke file version.py , perbarui author , project dan linkcheck_ignore | |
docs/index.rst | Nama header dan modul yang disertakan | Ganti be_upy_blink dengan file .rst baru paket baru |
docs/NEW_MODULE_NAME.rst | Buat file .rst baru yang disebut sebagai paket | Gunakan docs/be_upy_blink.rst sebagai Template |
package.json | File dan jalur ke paket dan repo baru | Digunakan oleh mip |
setup.py | Path to version.py file, name , description , url , author , author_email , keywords , project_urls , packages , install_requires | Digunakan untuk membuat paket dan informasi yang diterbitkan di EG PYPI |
Berdasarkan proyek sampel PYPA.