โครงการ Micropython PYPI Package Project พร้อมการปรับใช้อัตโนมัติ
เทมเพลตแพ็คเกจ Micropython PYPI พร้อมการทดสอบตามการกระทำของ GitHub และปรับใช้
เอกสารล่าสุดมีอยู่ที่ Micropython Package Template 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 ()ติดตั้งเวอร์ชันแพ็คเกจล่าสุดของ lib นี้บนอุปกรณ์ micropython
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) สำหรับรุ่น micropython ต่ำกว่า 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" ) สำหรับรุ่น micropython ต่ำกว่า 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" ) สำหรับรุ่น micropython ต่ำกว่า 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 Server PYPI ใน Docker สำหรับเซิร์ฟเวอร์ทดสอบ PYPI ที่ทำงานบน Docker
คัดลอกโมดูลไปยังบอร์ด micropython และนำเข้าดังที่แสดงด้านล่างโดยใช้เชลล์ 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 (ยังเข้ากันได้กับคำสั่ง setuptools) sdist เพื่อดำเนินการก่อนและหลังการประมวลผลตามที่จำเป็นสำหรับตัวจัดการแพ็คเกจ UPIP ของ Micropython สคริปต์นี้นำมาจาก PicoWeb ของ Pfalcon และอัปเดตให้สอดคล้องกับ PEP8
python setup.py sdist โฟลเดอร์ใหม่จะถูกสร้าง dist sdist_upip จะถูกใช้เพื่อสร้างทุกสิ่งที่จำเป็น
ระวัง: pypi.org และ test.pypi.org แตกต่างกัน
คุณ ไม่ สามารถเข้าสู่ระบบเพื่อ test.pypi.org ด้วยบัญชี pypi.org เว้นแต่คุณจะสร้างสิ่งเดียวกันในอีกบัญชีหนึ่ง ดูหน้าช่วยเหลือ Auth Auth ที่ไม่ถูกต้องของ การทดสอบ 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 ไปยัง version.py ไฟล์ | ละเว้นไฟล์เวอร์ชันจากความครอบคลุม |
.coveragerc | เส้นทางที่จะ include โฟลเดอร์ | รวมโฟลเดอร์แพ็คเกจสำหรับความครอบคลุม |
.github/workflows/release.yml | path ไปยัง version.py ไฟล์ | ใช้ไฟล์เวอร์ชันแพ็คเกจเพื่อตั้งค่าเวอร์ชันที่ใช้ Changelog |
.github/workflows/test-release.yml | path ไปยัง version.py ไฟล์ | ใช้ไฟล์เวอร์ชันแพ็คเกจเพื่อตั้งค่าเวอร์ชันที่ใช้ Changelog |
.github/workflows/test.yml | path ไปยัง version.py ไฟล์ | ใช้ไฟล์เวอร์ชันแพ็คเกจเพื่อตั้งค่าเวอร์ชันที่ใช้ Changelog |
.pre-commit-config.yaml | path ไปยัง version.py ไฟล์ | ใช้ไฟล์เวอร์ชันแพ็คเกจเพื่อตรวจสอบความถูกต้องกับเวอร์ชันที่ใช้ Changelog ล่าสุด |
README.md | ลิงก์ในส่วนส่วนหัวและคำแนะนำการติดตั้ง | |
changelog.md | การล้างข้อมูล Changelog จากข้อมูลเทมเพลต | ให้การใช้งาน Semver |
docs/DOCUMENTATION.md | หงิกงอเพื่ออ่าน | |
docs/conf.py | รายการไปยังโมดูลที่จะล้อเลียนนำเข้าแพ็คเกจพา ธ ไปยัง version.py ไฟล์. py, อัปเดต author project และ linkcheck_ignore | |
docs/index.rst | ชื่อส่วนหัวและโมดูลรวม | แทนที่ be_upy_blink ด้วยไฟล์ .rst ใหม่ของแพ็คเกจใหม่ |
docs/NEW_MODULE_NAME.rst | สร้างไฟล์ .rst ใหม่ชื่อเป็นแพ็คเกจ | ใช้ docs/be_upy_blink.rst เป็นเทมเพลต |
package.json | ไฟล์และเส้นทางไปยังแพ็คเกจใหม่และ repo | ใช้โดย mip |
setup.py | PATH ไปยัง version.py File, name , description , url , author , author_email , keywords , project_urls , packages , install_requires | ใช้เพื่อสร้างแพ็คเกจและข้อมูลที่เผยแพร่ที่ EG PYPI |
ขึ้นอยู่กับโครงการตัวอย่าง PYPA