Projeto Modelo de Pacote Micropython Pypi com implantação automática
Modelo de pacote Micropython Pypi com testes e implantação baseados em ação do GitHub
A documentação mais recente está disponível no Micropython Package Modelo ReadThedocs
O Python3 deve ser instalado no seu sistema. Verifique a versão python atual com o seguinte comando
python --version
python3 --version Dependendo de qual comando Python 3.xy (com xy como alguns números) é retornado, use esse comando para prosseguir.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtConecte o dispositivo Micropython a uma rede (se possível)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Instale a versão mais recente do pacote desta lib no dispositivo Micropython
import mip
mip . install ( "github:brainelectronics/micropython-package-template" ) Para versões Micropython abaixo de 1.19.1, use o pacote upip em vez de mip
import upip
upip . install ( 'micropython-package-template' )Instale uma versão específica e fixa deste Lib no dispositivo 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" ) Para versões Micropython abaixo de 1.19.1, use o pacote upip em vez de mip . Com upip , sempre a versão mais recente disponível será instalada.
import upip
upip . install ( 'micropython-package-template' )Instale uma versão do candidato de liberação específica enviada para testar o índice de pacote Python em todos os PR no dispositivo Micropython. Se nenhuma versão específica estiver definida, a versão estável mais recente será usada.
import mip
mip . install ( "github:brainelectronics/micropython-package-template" , version = "0.6.0-rc9.dev13" ) Para versões Micropython abaixo de 1.19.1, use o pacote upip em vez de mip . Com upip , sempre a versão mais recente disponível será instalada.
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 também o BainSelectronics Test Pyver Server no Docker para um servidor Pypi de teste em execução no Docker.
Copie o módulo para a placa Micropython e importe -os como mostrado abaixo usando o Micropython Shell remoto
Abra o shell remoto com o seguinte comando. Além disso, use -b 115200 , caso nenhum CP210x seja usado, mas um CH34X.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano Execute o seguinte comando dentro do rshell para copiar todos os arquivos e pastas para o 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 o pacote Python necessário com o seguinte comando em um ambiente virtual para evitar conflitos com outros pacotes instalados no sistema local.
python3 -m venv .venv
source .venv/bin/activate
pip install twine Este módulo substitui os distutils (também compatíveis com o SetupTools) comando sdist para executar o pré e o pós-processamento, conforme necessário para o gerenciador de pacotes UPIP do Micropython. Este script é retirado do Picoweb da Pfalcon e atualizado para ser o Pep8 em conformidade.
python setup.py sdist Uma nova pasta dist será criada. O sdist_upip será usado para criar tudo o que é necessário.
Esteja ciente: Pypi.org e test.pypi.org são diferentes
Você não pode fazer login para test.pypi.org com a conta do Pypi.org, a menos que tenha criado o mesmo no outro. Veja a página de ajuda de autenticação inválida do teste Pypi
Para fins de teste, adicione --repository testpypi para fazer upload para test.pypi.org
twine upload dist/micropython-package-template- * .tar.gz -u PYPI_USERNAME -p PYPI_PASSWORDExecute os unittests localmente com o seguinte comando depois de instalar este pacote em um ambiente 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_ledGerar os arquivos de cobertura com
coverage html O relatório de cobertura é colocado em reports/coverage/html/index.html
Para usar este modelo para um novo pacote Micropython para as etapas seguintes devem ser feitas e alterações nesses arquivos que estão sendo feitos
| Arquivo | Mudanças | Mais detalhes |
|---|---|---|
.coveragerc | File de caminho para version.py | Omita o arquivo de versão da cobertura |
.coveragerc | Caminho para include a pasta | Inclua a pasta de pacotes para cobertura |
.github/workflows/release.yml | File de caminho para version.py | Use o arquivo de versão do pacote para definir a versão baseada em Changelog |
.github/workflows/test-release.yml | File de caminho para version.py | Use o arquivo de versão do pacote para definir a versão baseada em Changelog |
.github/workflows/test.yml | File de caminho para version.py | Use o arquivo de versão do pacote para definir a versão baseada em Changelog |
.pre-commit-config.yaml | File de caminho para version.py | Use o arquivo de versão do pacote para validação contra a versão mais recente baseada em Changelog |
README.md | Links na seção de cabeçalho e instruções de instalação | |
changelog.md | Changelog de limpeza de informações sobre o modelo | Mantenha o uso de Semver |
docs/DOCUMENTATION.md | Torneio para leitura | |
docs/conf.py | Lista para módulos a serem ridicularizados, importação de pacotes, caminho para version.py , atualizar author , project e linkcheck_ignore | |
docs/index.rst | Nome do cabeçalho e módulos incluídos | Substitua be_upy_blink por um novo arquivo .rst de novo pacote |
docs/NEW_MODULE_NAME.rst | Crie um novo arquivo .rst nomeado como o pacote | Use docs/be_upy_blink.rst como modelo |
package.json | Arquivos e caminhos para o novo pacote e repo | Usado por mip |
setup.py | Path to version.py File, name , description , url , author , author_email , keywords , project_urls , packages , install_requires | Usado para criar o pacote e suas informações publicadas no EG Pypi |
Com base no projeto de amostra do Pypa.