Skip to content

stubs: publier des stubs de typage pour la complétion VS Code/Pylance #427

@nedseb

Description

@nedseb

Description

Les fiches pédagogiques I-NOVMICRO du wiki Wiki@LAB (https://github.com/LabAixBidouille/wikilab) recommandent VS Code + Pylance pour programmer la STeaMi en MicroPython. Avec micropython-stdlib-stubs (PyPI) on obtient déjà l'autocomplétion sur machine, time, etc.

Manque l'autocomplétion sur les modules spécifiques à la STeaMi exposés par ce repo : steami_screen, ism330dl, hts221, lis2mdl, vl53l1x, apds9960, mcp23009e, ssd1327, daplink_flash, steami_config, etc. Sans stubs publiés, Pylance souligne tous ces imports en jaune (« Import could not be resolved ») et ne propose rien quand on tape ecran. ou accelerometre..

Concrètement : publier sur PyPI un paquet micropython-steami-stubs (ou équivalent) généré à partir des sources de ce repo, à la manière de josverl/micropython-stubs. Les enseignant·es et élèves installeraient :

pip install micropython-steami-stubs

et Pylance proposerait l'autocomplétion sur l'API des drivers comme pour n'importe quel paquet Python installé localement.

Driver / Component

Project-wide.

Alternatives considered

  • Recopier les .py du repo dans un dossier typings/ du projet et pointer python.analysis.extraPaths dessus. Marche, mais demande à chaque utilisateur de faire la manip et n'est pas automatiquement à jour avec les releases.
  • Ignorer les avertissements Pylance (le code marche sur la carte). Acceptable, mais on perd toute l'aide à la frappe.

Pourquoi ça aide

  • Public visé : élèves de collège/lycée et leurs enseignant·es. L'autocomplétion réduit la barrière d'entrée et limite les coquilles de frappe.
  • Aligne l'expérience MicroPython sur la STeaMi avec celle des autres cartes courantes (Pico, ESP32) qui ont déjà leurs stubs publiés via josverl/micropython-stubs.

Contexte : remonté lors de la rédaction de la fiche enseignant·e « Démarrer avec VS Code » du wiki Wiki@LAB (LabAixBidouille/wikilab#21).

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions