Provide stubs with documentation for the MicroPython running on Calliope Mini
Project description
CalliopeMini Stubs
Use this library to develop your python programs for the Calliope Mini using a state-of-the-art python IDE such as Visual Studio Code on your computer.
This library only helps by providing documentation, type annotations and function signatures. It does not contain a simulator/emulator and it does not allow to transfer the developed code to the Calliope Mini.
Setup VSCode
- Install the
ms-python.python
extension. pip install calliope-mini-stubs
to get this package installed.- Select the correct python (e.g. if you
pip installed
into a virtual environment, chose the python from there).
Now you can create a file and begin it with from calliope_mini import display
and upon typing display.sh
you should see display.show
as proposal and if
you select it the help text for display.show
.
To make more of the extension:
- Enable Checkers
pylint
andmypy
-- see python linting.
Tutorial
-
Create a virtual environment
% python3 -m venv --system-site-packages venv
-
Activate it (
python
,pip
, etc will be found in this directory from now on)% source ./venv/bin/activate
-
Verify, that you are using this virtual envirnonment --
which python3
should generate something like this% which python3 <path where you work>/venv/bin/python3
-
Install this package
% python3 -m pip install --upgrade calliope-mini-stubs Looking in indexes: .... Collecting calliope-mini-stubs Downloading https://.... Installing collected packages: calliope-mini-stubs Successfully installed calliope-mini-stubs-<version>
-
Launch Visual Studio Code
% code .
-
Create a new python file, for example
hello_world.py
. -
Make sure, that the correct interpreter is used. On the lower left corner of VSCode you should see the python from
venv
selected:If this is not the correct one, then select the right interpreter. To do so:
-
run
Ctrl + Shift + P
and typePython: Select Interpreter
-
then type
./venv/bin/python
and select that.
-
-
In your python file, start typing, e.g.
import calliope_mini
. During typing, you should already getcalliope_mini
proposed. IntelliSense allows VSCode to give you hints on what objects/methods/... you can select in this placeand VSCode can directly display the documentation for the method you currently use (e.g. the function signature and a human readable description)
License
This package is licensed under MIT license.
See the LICENSE
file.
It uses code from the package pseudo-microbit
which is also MIT licensed
(same as this package) with the copyright notice
Copyright (c) 2013-2016 The MicroPython-on-micro:bit Developers, as listed
in the accompanying AUTHORS file
Currently missing in this library
- in module
calliope_mini
i2c
uart
spi
- module
random
On Stub Files
Generatlly, stubs should be distributed in the form of .pyi
files -- one
.pyi
with documentation/typing informatino for each .py
file.
PEP 484
describes, how the .pyi
files should look like.
PEP 561 describes, how to distribute them:
- The package needs to be named
foopkg-stubs
for packagefoopkg
- A file
py.typed
must be installed in the top-level of the package.
Problems
- pylint does not recognize
__init__.pyi
files: https://github.com/PyCQA/pylint/issues/2873 This way, if you declare modules with interfaces only, pylint will display the errorundefined variable ...
orno ... in module ...
. (vscode will correctly show the methods/docstrings/..., though!) -> Solution: Use.py
files instead of.pyi
files. - static values such as
Image.HAPPY
are neither autocompleted nor properly recognized as type (i.e.a
ina = Image.HEART
is not detected asImage
(orMicroBitImage
)). IfImage
were an instance it would work... See the question how to get that working.
Working Examples for .pyi files
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file calliope-mini-stubs-0.0.5.tar.gz
.
File metadata
- Download URL: calliope-mini-stubs-0.0.5.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 450753e86a9a41d3d1c0bb80d8063453b0bf7b528f74ec765c3f60f1d01cc851 |
|
MD5 | a792e1c5847174fd0111434fdb081cf1 |
|
BLAKE2b-256 | 7dbb8121db30b7401730b6ecc2de010e25ce5bbab08d715b22ad5d74318af059 |
File details
Details for the file calliope_mini_stubs-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: calliope_mini_stubs-0.0.5-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed23f105281a4dcc4816fd458265840fe0ff301bb94a45f8a70133e1b99e89b2 |
|
MD5 | c0ab9020e2ab4286c47ef3ba9c7ab050 |
|
BLAKE2b-256 | 77bad7c894575b8267b8e57853460fa4ecccdba11252f7a6994aba1679630c9a |