自動展開を備えたMicropython Pypiパッケージテンプレートプロジェクト
GitHubアクションベースのテストと展開を備えたMicropython Pypiパッケージテンプレート
最新のドキュメントは、Micropythonパッケージテンプレートreadthedocsで入手できます
Python3はシステムにインストールする必要があります。次のコマンドを使用して、現在のPythonバージョンを確認してください
python --version
python3 --versionどのコマンドPython 3.xy (xyをいくつかの数字として)が返されるかに応じて、そのコマンドを使用して続行します。
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtMicropythonデバイスをネットワークに接続します(可能であれば)
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" ) 1.19.1以下のMicropythonバージョンの場合、 mipの代わりにupipパッケージを使用します
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以下のMicropythonバージョンの場合、 mipの代わりにupipパッケージを使用します。 upipを使用すると、常に最新の利用可能なバージョンがインストールされます。
import upip
upip . install ( 'micropython-package-template' )Micropythonデバイス上のすべてのPRでPythonパッケージインデックスをテストするためにアップロードされた特定のリリース候補バージョンをインストールします。特定のバージョンが設定されていない場合、最新の安定したバージョンが使用されます。
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) 1.19.1以下のMicropythonバージョンの場合、 mipの代わりにupipパッケージを使用します。 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' )Dockerで実行されているテストPypiサーバーのBrainelectronicsテストPypiサーバーも参照してください。
モジュールをMicropythonボードにコピーし、以下に示すようにインポートするリモートマイクロパイソンシェル
次のコマンドでリモートシェルを開きます。さらに、CP210xが使用されない場合に-b 115200を使用しますが、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このモジュールは、MicropythonのUPIPパッケージマネージャーに必要に応じて前処理と後処理を実行するために、distutils(Setuptoolsと互換性のある) sdistコマンドを上書きします。このスクリプトは、PFALCONのPicoWebから取得され、PEP8適合に更新されます。
python setup.py sdist新しいフォルダーdistが作成されます。 sdist_upipは、必要なすべてを作成するために使用されます。
注意してください:pypi.orgとtest.pypi.orgは異なります
他に同じものを作成しない限り、pypi.orgアカウントでtest.pypi.orgにログインすることはできません。 Test Pypiの無効なAuthヘルプページを参照してください
テストのために--repository testpypiをアップロードしてtest.pypi.orgに追加します
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORD仮想環境にこのパッケージをインストールした後、次のコマンドで地元でUnittestを実行します
# 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 | version.pyファイルへのパス | カバレッジからバージョンファイルを省略します |
.coveragerc | フォルダーincludeパス | カバレッジ用のパッケージフォルダーを含めます |
.github/workflows/release.yml | version.pyファイルへのパス | パッケージバージョンファイルを使用して、changelogベースのバージョンを設定します |
.github/workflows/test-release.yml | version.pyファイルへのパス | パッケージバージョンファイルを使用して、changelogベースのバージョンを設定します |
.github/workflows/test.yml | version.pyファイルへのパス | パッケージバージョンファイルを使用して、changelogベースのバージョンを設定します |
.pre-commit-config.yaml | version.pyファイルへのパス | 最新のchangelogベースのバージョンに対する検証にパッケージバージョンファイルを使用する |
README.md | ヘッダーセクションのリンクとインストール手順 | |
changelog.md | テンプレートの情報からのCleanup Changelog | Semverの使用を維持します |
docs/DOCUMENTATION.md | readthedocsにキンク | |
docs/conf.py | モックするモジュールへのリスト、パッケージインポート、 version.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 | 新しいパッケージとリポジトリへのファイルとパス | mipが使用します |
setup.py | version.pyへのパス。pyファイル、 name 、 description 、 url 、 author 、 author_email 、 keywords 、 project_urls 、 packages 、 install_requires | Eg Pypiで公開されたパッケージとその情報を作成するために使用されます |
PYPAサンプルプロジェクトに基づいています。