Works like "python -m venv path" and creates a rudimentary virtual
environment for the Unix port:
- sets MICROPYPATH
- copies the micropython binary to venv/bin/micropython which is in $PATH
- installs mip & mip-cmdline in the venv
Using the venv is the same as for CPython -- source the activate script to
enter, and call the deactivate function to leave.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Moves mip.py to mip/__init__.py, so that the optional (added in this
commit) mip/__main__.py can exist to support:
`micropython -m mip install [--target,--index,--no-mpy] package@version`
"install" works by forwarding the arguments directly to mip.install.
Updates mip to v0.2.0 because of the change in directory structure.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Duplicate Ctrl-C and LF detection requires this, but it was incorrectly
saving the current value, not the previous.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
The regular REPL uses the uncooked input, but aiorepl reads from sys.stdin
which is cooked. The result is that if the client sends a CRLF, aiorepl
will see LFLF.
This ignores a second LF in quick succession from the first.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
- `_FLAG_WRITE` was incorrectly `_FLAGS_WRITE`
- `response` should be defaulted to `None` rather than `False` in order
to detect that when it is unspecified.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This tool implements a subset of the ESP32 ROM bootloader protocol, and
it's mainly intended for updating Nina WiFi firmware from MicroPython, but
can be used to flash any ESP32 chip.
Check the machine module first, then search in previous places. This
supports having machine.dht_readinto as the new standard, while still being
backwards compatible.
This replaces the options that could be specified previously to include
and require.
The `aioble` package now provides everything. For a minimal install, the
individual components can now be installed or require()'ed explicitly.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
After `reconnect()`, MQTTClient.socket is blocking by default, and
check_msg() can block. This commit aims to fix that behaviour by
reimplementing `check_msg()` for umqtt.robust and setting the socket to
non-blocking.
Fixes issue #192.
The statement "with assertRaises(errtype) as ctxt" checks the type of a
raised exception, but did not store the exception into ctxt like unittest
of CPython. The exception instance is usually used to check its message or
other args.
Riffing on "pip", "mip installs packages".
This is a replacement for the previous `upip` tool for on-device
installation of packages.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This populates https://micropython.org/pi/v2 with compiled packages,
suitable for use by `mip` and `mpremote`.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This replaced the per-characteristic queues with a single shared queue,
which means that the characteristics will return from `written()` in the
exact order that the original writes arrived, even if the writes are
occuring across multiple different characteristics.
This work was funded by Planet Innovation.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This provides an async REPL with the following features:
- Run interactive REPL in the background.
- Execute statements using await.
- Simple history.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
In order to make this more suitable for non-unix ports, the discovery
functionality is moved to a separate 'extension' module which can be
optionally installed.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Although this primarily makes sense for the unix port, there's nothing
preventing it being used on any port, and it's written for MicroPython.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
The `bluetooth` module replaced the def_handle field with end_handle
in the characteristic result IRQ. Use this when querying for
descriptors.
In the case where this is not available (older versions of micropython)
continue the existing behavior of searching just past the value handle,
although decrease this to +2 to avoid finding other characteristic's
descriptors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
With the dependencies captured in manifest.py, several packages in
python-stdlib were still unix-only due to direct or transitive dependencies
on unix-only or ffi modules. Or they just make no sense to run on
microcontroller targets.
In a few cases (e.g. base64) where possible, the unix dependency could be
removed.
Updates manifest.py to use the `unix_ffi=True` arg to `require()` for these
libraries.
Rename re-pcre to re now that unix-ffi is effectively its own namespace.
Update unix-ffi/README.md, and strengthen the wording that the unix
libraries are unmaintained.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Uses the new require()/package()/module() functions from manifestfile.py.
Add manifest.py for iperf3 and pyjwt.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This is unmaintained and not the one installed by default on boards
(see github.com/micropython/micropython/blob/master/tools/upip.py).
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>