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>
2015-01-01 07:45:46.790 INFO Received OLCP_OP_FIRST
2015-01-01 07:45:46.979 ERROR Error in ble_write_listener
Traceback (most recent call last):
File "aioble/server.py", line 223, in indicate
NameError: name 'GattError' isn't defined
This library was non-functional unless used with the micropython-lib
pure-Python implementation of hashlib, even if the device provides
sha1 and sha256.
This updates hmac to be significantly more RAM efficient (removes the
512-byte table), and functional with the built-in hash functions.
The only unsupported function is "copy", but this is non-critical, and now
fails with a NotSupportedError.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
On the ESP32, socket.getaddrinfo() might return SOCK_DGRAM instead of
SOCK_STREAM, eg with ".local" adresses. As a HTTP request is always a TCP
stream, we don't need to rely on the values returned by getaddrinfo.
Even though we use HTTP 1.0, where closing connection after sending
response should be the default, some servers ignore this requirement and
keep the connection open. So, explicitly send corresponding header to get
the expected behavior.
This is controlled by parse_headers param to request(), which defaults to
True for compatibility with upstream requests. In this case, headers are
available as .headers of Response objects. They are however normal (not
case-insensitive) dict.
If parse_headers=False, old behavior of ignore response headers is used,
which saves memory on the dict.
Finally, parse_headers can be a custom function which can e.g. parse only
subset of headers (again, to save memory).